搜档网
当前位置:搜档网 › C#中如何调用按键精灵插件

C#中如何调用按键精灵插件

C#中如何调用按键精灵插件
C#中如何调用按键精灵插件

C#中如何调用按键精灵插件

原来是为了在游戏外挂中发送键盘鼠标消息,自己写个sendmessage或者是postmessage又比较麻烦。于是google了一下,发现现在很多脚本工具都有这个功能,其中按键精灵的一个叫361度的插件已经有这个的实现,还验证过了。为什么不拿来己用呢?首先分析一下按键精灵插件的接口,发现:

插件的功能函数没有直接暴露出来,而是通过一个GetCommand的函数返回一个函数描述结构。

接下来看看这个结构:

上面这个结构我已经是转换成C#的对应结构了,原结构可以查看按键精灵提供的插件C++接口源代码。

这个结构里面的handlerFunction 实际上是指向函数的入口点,也就是一个函数指针,每个函数都一样是2个参数:

typedef int (*QMPLUGIN_HANDLER)(char *lpszParamList, char *lpszRetVal); 转换为C#中相应的委托为:

delegate void Invoker(string parameters, StringBuilder returnValue);

大家注意到,有两个参数,c++原型中都是char*类型,转换为C#的delegate后第一个为string,第二个为StringBuilder。这是因为parameters是in的,dll中不会对这个参数做修改,而returnValue是out的,dll返回时候要把返回值写入这个StringBuilder的缓冲区。

原本的想法是用C++写一个桥来调用dll,不过在.net 2.0 中,框架直接提供了

Marshal.GetDelegateForFunctionPointer 来转换一个函数指针为一个委托,这就方便多拉。请看下面代码,注意看BGKM_ExecuteCommand 这个函数里面的东西。

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

namespace WJsHome.Game.Utility

{

public class QMacro

{

[DllImport("BGKM5.dll", EntryPoint = "GetCommand")]

static extern IntPtr BGKM_GetCommand(int commandNum);

[StructLayout(LayoutKind.Sequential)]

class QMPLUGIN_CMD_INFO

{

public string commandName;

public string commandDescription;

public IntPtr handlerFunction;

public uint paramNumber;

}

delegate void Invoker(string parameters, StringBuilder returnValue);

static string BuildParameters(params object[] parameters)

{

StringBuilder sb = new StringBuilder();

for (int i = 0; i < parameters.Length; i++)

{

sb.Append(parameters[i].ToString());

if (i != parameters.Length - 1)

{

sb.Append(',');

}

}

return sb.ToString();

}

static void BGKM_ExecuteCommand(int cmdNum, string parameters, Stri ngBuilder retVal)

{

IntPtr pCmdInfo = BGKM_GetCommand(cmdNum);

QMPLUGIN_CMD_INFO cmdInfo = new QMPLUGIN_CMD_INFO();

Marshal.PtrToStructure(pCmdInfo, cmdInfo);

Invoker invoker = Marshal.GetDelegateForFunctionPointer(cmdInfo.ha ndlerFunction, typeof(Invoker)) as Invoker;

invoker(parameters, retVal);

}

public static void BGKM_KeyClick(IntPtr hWnd, int key)

{

BGKM_ExecuteCommand(0, BuildParameters(hWnd, key), null);

}

public static void BGKM_KeyDown(IntPtr hWnd, int key)

{

BGKM_ExecuteCommand(1, BuildParameters(hWnd, key), null);

}

public static void BGKM_Mouse(IntPtr hWnd, int code, int x, int y)

{

BGKM_ExecuteCommand(15, BuildParameters(hWnd, code, x, y), null); }

public static WinApi.POINT BGKM_ScrToCli(IntPtr hWnd, int x, int y)

{

StringBuilder retVal = new StringBuilder();

BGKM_ExecuteCommand(16, BuildParameters(hWnd, x, y), retVal);

string[] tmp = retVal.ToString().Split('|');

return new WinApi.POINT(int.Parse(tmp[0]), int.Parse(tmp[1]));

}

}

}

好了,方便哇?这样一来,我们可以在.net上面实现动态加载和卸载Win32 dll. 具体思路就是:(还是代码来得方便)

public delegate int MsgBox(int hwnd,string msg,string cpp,int ok);

[DllImport("Kernel32")]

public static extern int GetProcAddress(int handle, String funcname); [DllImport("Kernel32")]

public static extern int LoadLibrary(String funcname);

[DllImport("Kernel32")]

public static extern int FreeLibrary(int handle);

private static Delegate GetAddress(int dllModule, string functionname, Type t) {

int addr = GetProcAddress(dllModule, functionname);

if (addr == 0)

return null;

else

return Marshal.GetDelegateForFunctionPointer(new IntPtr(addr), t);

}

private void button1_Click(object sender, EventArgs e)

{

int huser32 = 0;

huser32 = LoadLibrary("user32.dll");

MsgBox mymsg = (MsgBox)GetAddress(huser32, "MessageBoxA", typeof(Ms gBox));

mymsg(this.Handle.ToInt32(), txtmsg.Text, txttitle.Text , 64);

FreeLibrary(huser32);

}

按键精灵插件使用说明

函数说明: 1.TransformWindow(窗口句柄) 功能:转换窗口,对要取后台图色数据的窗口使用该函数后才能取后台图色数据。如果是DX图形绘图的窗口,DX绘图区域必须有部分移到屏幕外,否则无法使用。转换窗口后,有些窗口(特别是大多数游戏的)要等待一会儿才能用其它函数可靠地取到后台图色数据,等待的时间要大于画面两次刷新的时间间隔。转换后到取消转换前,可以无限次使用取到后台图色数据的命令,即通常只需要转换一次。 参数: 1)窗口句柄:整型数。 2.UnTransformWindow(窗口句柄) 功能:取消窗口转换,DX图形绘图的窗口,用过TransformWindow后,必须用UnTransformWindow取消窗口转换才能让DX绘图完全移到屏幕中,否则后很严重(不会损坏电脑的),自己试下就知道了。 参数: 1)窗口句柄:整型数。 3.GetPixelColor(窗口句柄,横坐标,纵坐标)[颜色值] 功能:获得指定点的颜色 参数: 1)窗口句柄:整型数。 2)横坐标:整型数,窗口客户区坐标。 3)纵坐标:整型数,窗口客户区坐标。 返回值: 颜色值:整型数。 例子: Plugin hwnd=Window.Foreground() Plugin Window.Move(hwnd,-30,10) Plugin BGCP2_02.TransformWindow(hwnd) Delay 200 Plugin color=BGCP2_02.GetPixelColor(hwnd,0,0) MsgBox CStr(Hex(color)),4096,"颜色" Plugin BGCP2_02.UnTransformWindow(hwnd) Plugin Window.Move(hwnd,10,10) 4.CmpColor(窗口句柄,横坐标,纵坐标,颜色,颜色最大偏差)[是否满足条件] 功能:判断指定点的颜色,后台的IfColor 参数: 1)窗口句柄:整型数。 2)横坐标:整型数,窗口客户区坐标。 3)纵坐标:整型数,窗口客户区坐标。 4)颜色:整型数。 5)颜色最大偏差:整型数。游戏中不同电脑上显示的颜色会有点偏差,这个参数用于兼容这种情况,它设置的是RGB各颜色分量偏差的最大允许值,取值范围是0-255,0是无颜色偏差。 返回值: 是否满足条件:布尔值,布尔值是用来表达是真是假的,指定点的颜色满足条件就返回真,否则返回假。 例子: Import "BGCP2_02.dll" Plugin hwnd=Window.Foreground() Plugin Window.Move(hwnd,-30,10) Plugin BGCP2_02.TransformWindow(hwnd) Delay 200 Plugin tj=BGCP2_02.CmpColor(hwnd,6,5,&HFF7F00,30) If tj=true MsgBox "满足条件",4096 Else MsgBox "不满足条件",4096 EndIf Plugin BGCP2_02.UnTransformWindow(hwnd) Plugin Window.Move(hwnd,10,10) 5.FindColor(窗口句柄,左边界,上边界,右边界,下边界,颜色,颜色最大偏差,查找方式,横坐标,纵坐标) 功能:找色 参数: 1)窗口句柄:整型数。 2)左边界,整型数,用于设置找色范围,找色区域左上角的横坐标(窗口客户区坐标)。 3)上边界,整型数,用于设置找色范围,找色区域左上角的纵坐标(窗口客户区坐标)。 4)右边界,整型数,用于设置找色范围,找色区域右下角的横坐标(窗口客户区坐标)。 5)下边界,整型数,用于设置找色范围,找色区域右下角的纵坐标(窗口客户区坐标)。

C#中如何调用按键精灵插件

C#中如何调用按键精灵插件 原来是为了在游戏外挂中发送键盘鼠标消息,自己写个sendmessage或者是postmessage又比较麻烦。于是google了一下,发现现在很多脚本工具都有这个功能,其中按键精灵的一个叫361度的插件已经有这个的实现,还验证过了。为什么不拿来己用呢?首先分析一下按键精灵插件的接口,发现: 插件的功能函数没有直接暴露出来,而是通过一个GetCommand的函数返回一个函数描述结构。 接下来看看这个结构: 上面这个结构我已经是转换成C#的对应结构了,原结构可以查看按键精灵提供的插件C++接口源代码。 这个结构里面的handlerFunction 实际上是指向函数的入口点,也就是一个函数指针,每个函数都一样是2个参数: typedef int (*QMPLUGIN_HANDLER)(char *lpszParamList, char *lpszRetVal); 转换为C#中相应的委托为: delegate void Invoker(string parameters, StringBuilder returnValue); 大家注意到,有两个参数,c++原型中都是char*类型,转换为C#的delegate后第一个为string,第二个为StringBuilder。这是因为parameters是in的,dll中不会对这个参数做修改,而returnValue是out的,dll返回时候要把返回值写入这个StringBuilder的缓冲区。 原本的想法是用C++写一个桥来调用dll,不过在.net 2.0 中,框架直接提供了

Marshal.GetDelegateForFunctionPointer 来转换一个函数指针为一个委托,这就方便多拉。请看下面代码,注意看BGKM_ExecuteCommand 这个函数里面的东西。 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace WJsHome.Game.Utility { public class QMacro { [DllImport("BGKM5.dll", EntryPoint = "GetCommand")] static extern IntPtr BGKM_GetCommand(int commandNum); [StructLayout(LayoutKind.Sequential)] class QMPLUGIN_CMD_INFO { public string commandName; public string commandDescription; public IntPtr handlerFunction; public uint paramNumber; } delegate void Invoker(string parameters, StringBuilder returnValue); static string BuildParameters(params object[] parameters) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < parameters.Length; i++) { sb.Append(parameters[i].ToString());

(完整版)按键精灵默认插件命令大全

目录 插件命令面板 - BKgnd后台控制 (6) KeyPress 按键 (6) KeyDown 按下 (7) KeyUp 弹起 (8) LeftClick 左键单击 (9) LeftDoubleClick 左键双击 (10) LeftDown 左键按下 (11) LeftUp 左键弹起 (12) RightClick 右键单击 (13) RightDown 右键按下 (14) RightUp 右键弹起 (15) MiddleClick 中键单击 (16) SendString 发送字符串 (17) MoveTo 鼠标移动 (18) GetPixelColor 得到指定点颜色 (19) FindColor 区域找色 (20) FindColorEx 模糊找色 (21) FindCenterColor 中心找色 (22) 插件命令面板 - Color颜色 (23) ColorToRGB 颜色转RGB (23) GetRGB 得到RGB分量合并值 (23) ColorToHSL 颜色转HSL (24) CountColor 区域搜索颜色数量 (25) FindMutiColor 区域多点找色 (26) FindShape 区域多点找形状 (27) 插件命令面板 - Console控制台 (27) Open 打开 (28) Close 关闭 (29) ReadLine 读取一行 (29) WriteLine 写入一行 (29)

WaitKey 等待按键 (30) 插件命令面板 - Encrypt加解密 (30) Md5String 字符串MD5加密 (30) Md5File 文件MD5加密 (31) 插件命令面板 - File文件 (31) CloseFile 关闭文件 (31) CopyFile 复制文件 (31) CreateFolder 创建文件夹 (32) DeleteFile 删除文件 (32) DeleteFolder 删除文件夹 (33) ExistFile 判断文件(旧) (33) GetFileLength 得到文件长度 (33) IsFileExit 判断文件 (34) MoveFile 移动文件 (35) OpenFile 打开文件 (35) ReadFile 读取文件 (36) ReadFileEx 读取文件 (36) ReadINI 读取键值 (37) ReadLine 读取一行 (37) ReNameFile 重命名文件 (38) SeekFile 设置文件的当前读写位置 (38) SelectDirectory 弹出选择文件夹对话框 (39) SelectFile 弹出选择文件对话框 (39) SetAttrib 设置文件属性 (40) SetDate 设置文件日期时间 (41) WriteFile 写入文件 (41) WriteFileEx 写入文件 (41) WriteINI 写入键值 (42) WriteLine 写入一行 (42) 插件命令面板 - Media多媒体 (43) Beep 蜂鸣器 (43) Play 播放 (44)

按键精灵1--6级答案

以下哪一个不是按键精灵的产品按键箱子录制的脚本没有以下哪个功能记录鼠标特征码下列哪一个命令不属于"全部命令" 内核命令按键精灵自带的抓图工具是按键抓抓哪一种方法能够找到命令的帮助说明在全部命令中搜索命令, 点击后帮助说明会出现在编辑器下方. 按键精灵不可以在以下哪个系统中使用Linux 可以使用神盾功能的程序是小精灵商业版旧版本的脚本导入到新版本中, 以下哪种方法不可以纠正语法错误使用"自动缩进"功能? WaitClick 命令的含义是按任意鼠标键继续? 哪一类脚本程序是按键精灵官方授予销售权的小精灵商业版只要在编辑脚本,切换输入法时,按键精灵就卡住了, 可能是下列哪一个原因Plugin 目录下装有不是官方提供的插件引起的关于加密脚本的描述,下列是错误的是只有会员输入密码可以解开加密脚本GetLastClick 命令的含义是检测上次按过的鼠标键按键精灵生成的小精灵程序的后缀名是EXE 按键精灵会员不能享受的论坛权限是可以访问按键精灵“版版家园”专区享受版主资源网页按键精灵是下列哪一个程序wqm.exe 按键精灵的产品包括以下哪一个按键盒子按键精灵是下列哪一个程序按键精灵9.exe 按键精灵会员卡注册码,没有以下哪一种天卡(1 天) UnlockMouse 命令的含义是解除锁定鼠标位置? 按键精灵会员不能享受的资源是免费小精灵的源代码RightUp 命令的含义是右键弹起按键精灵的功能不包括自动发明汽车、飞机、火箭等机器按键精灵能兼容下列哪一种语言VBS 不能用抓抓工具直接获取的是PID 关于按键精灵的描述,以下正确的是按键精灵是一款绿色的模拟键盘鼠标操作的软件? 脚本编辑界面上没有的按钮是启动? 与取色判断命令没有直接关系的参数是按键码以下哪种方式可以在脚本编辑界面中获取到新的插件点击"资源库"按钮, 然后 导入需要的插件 LeftClick 命令的含义是左键单击按键精灵官方网站的网址是 RestoreMousePos命令的含义是恢复上次保存的鼠标位置如果按键精灵在某些环境失效, 可以使用下列哪个工具神盾SaveMousePo命令的含义是保存当前鼠标所在位置GetCursorPos 命令的含义是得到鼠标位置坐标键盘命令的类型不包括锁定按键精灵里运算符乘号是* KeyPress 命令的含义是按键 MiddleClick 命令的含义是中键单击 LockMouse命令的含义是锁定鼠标位置按键精灵会员不能享受的功能是脚本编写服务GetCursorShape 命令的含义是得到鼠标形状按键精灵自带的用户界面叫做什么QUI 界面RightClick 命令的含义是右键单击按键精灵里运算符减号是- 按键精灵默认的启动热键是F10 属于"全部命令"的是我的命令库“录制”功能不能录制的内容是记录鼠标指向的窗口句柄按键抓抓是下列哪一个程序picker.exe 想要知道脚本是否存在错误, 应该使用下列哪个功能调试以下哪种方式不可以获得论坛银币发布大量无内容的主题贴按键精灵里运算符除号是/ 按键精灵会员不能享受的技术支持是 技术人员上门服务按键精灵自带的功能不包括以下哪一个路由功能 GetLastKey命令在获取一次ANSI字符代码后继续循环执行返回值是?0 变量的定义,以下哪个是正确的dim a 下列哪一种方法不能够正确输入命令鼠标右键单击命令按键精灵的功能是?模拟鼠标键盘操作的工具? MoveF命令的含义是相对移动关于小精灵去广告的描述,下列正确的是会员用户在“制作按键小精灵”界面上->更多设置->选择会员去广告(是)即可? 按键精灵里运算符加号是+ 对小精灵的描述,以下是正确的按键小精灵是把按键精

按键精灵插件帮助

1.什么是按键精灵的插件 按键精灵的插件是由按键精灵官方或用户自己提供的一种功能扩展。由于按键精灵本身只提供脚本制作过程中最常用的功能,而不可能面面俱到。所以,如果您稍懂一点Visual C++编写程序的知识,就可以通过自己写按键精灵插件,实现比较特殊、高级的功能,如文件读写、注册表访问,等等。如果您愿意,还可以把自己写的插件提交给我们,我们可以在按键精灵的最新版中捆绑您编写的插件,和大家共同分享您的智慧! 按键精灵的插件是通过动态链接库(DLL)的形式提供的。这些动态链接库必须满足一定的规范,并且放在按键精灵所在路径的plugin文件夹下。在按键精灵启动的时候,会自动加载plugin文件夹下的每个插件。每个插件可以包含多个“命令”,每个命令则可以看作是一个独立的函数或者子程序。比如我们提供的文件相关操作插件File.dll,就提供了ExistFile(判断文件是否存在)、CopyFile(复制一个文件)、DeleteFile(删除一个文件)等多个命令。 目前按键精灵的插件只能使用Visual C++编写。您不需要懂得很高深的Visual C++编程技巧,也不需要知道插件的技术细节。因为我们已经提供了一个“模板”插件,您只需要在这个模板上按照下文所述的步骤进行一点点修改,一个属于您自己的插件就完成了。我们推荐您使用Visual C++ 6.0,也可以用Visual C++.NET。 值得说明的是,由于技术原因,按键精灵的插件目前还不能用Visual Basic、Delphi、JBuilder等常见的开发工具编写。但是有聪明的用户使用VBScript脚本和ActiveX DLL的形式,同样实现了按键精灵的功能扩展,典型的例子如Ringfo大虾制作的QMBoost等等。严格说来,这种功能扩展不能称为按键精灵的插件,但是我们同样欢迎这种类型的功能扩展。 2. 如何制作一个插件 2.1.准备动手 为按键精灵写一个插件其实非常简单,只需要您有一点Visual C++编程的知识就够了。如果您懂Visual C++编程,就请跟我一步一步的来完成一个简单的插件。 首先得计划一下,我们的插件完成什么功能,再考虑一下这个插件都需要具有哪些命令。这里假设我们的插件是用于字符串操作的,名字就叫String.dll,这个插件目前暂时只有一个命令,名字叫StrLen,是用于得到字符串长度的。也就是说,用户通过使用我们提供的StrLen 命令,传入一个字符串,我们给他返回这个字符串的长度。 具体的说,用户可能将来会在按键精灵中这样调用我们的插件命令: Dim length as integer Plugin length=String.StrLen(“Hello, world”) 如果您熟悉按键精灵,那么对第一句话不会陌生,它的意思是定义一个叫length的整数变量。第二句的意思,我们来解析一下:

按键精灵教程

变量!神奇的小柜子 变量就是会变化的量。就像一个小柜子,我们可以在柜子里装载不同的东西,而当我们需要找到这些东西的时候,只要记住柜子的名字就可以了。 使用变量的方法是:先定义(给柜子起名)、再赋值(将物品放进柜子)、最后使用(根据柜子名字找到放在其中的物品)。 使用Dim命令定义变量,例如: Dim str1 //定义变量str1 Dim var1=22 //定义变量Var1,并且赋值为22 例子1:使用变量设置输出文字的内容 1、下面红色的是3行脚本,请把他复制到“源文件”当中 Dim str1 str1 = "你很聪明" SayString str1 2、Dim str1 就是定义变量,也就是说我们创建了一个小柜子,给他起名为str1 3、str1 = "你很聪明" 就是赋值,我们把"你很聪明"这几个字放到str1这个小柜子里 4、SayString str1 表示我们输出str1这个变量的内容,也就是说把str1这个小柜子里的内容拿出来交给SayString 这个命令去使用。 5、如果你希望修改喊话的内容,只要修改str1这个小柜子里的内容就可以了。 例子2:变量的一些用法 a=1 把数字1放进柜子a中。 b="你猜对了吗?" 把字符串你猜对了吗?放进柜子b中。字符串必须用""包含。 dc=3.14159265 把小数放进柜子dc中。 num1=1 num1=33 num2=55 sum=num1+num2 首先把33和55分别放入num1和num2中。然后把他们取出来,做加法操作(加法是由CPU来处理的),把结果放在sum中。结果sum等于88 num1=1 num1=33 num1被给值为1,然后又给值为33。此时,num1中存储是的33。1就被覆盖掉了。没有了:) sum=sum+1 这句不等同于数学的加法,也是初学者不容易理解的地方。我们只要想,把sum拿出来和1做加法,再放回sum中就可以了。sum原来的值是88,做完加法后,sum等于89。 pig=1 pig=pig*3+pig 能猜出pig最后等于几么?1*3+1。结果是4 例子3:使用变量输入1到100的数字 VBSCall RunApp("notepad") Delay 2000 a=1

大漠插件后台找图、自动获取坐标窗口句柄鼠标多点左单击脚本

大漠插件后台找图、自动获取坐标窗口句柄鼠标多点左单击 脚本 一、准备工作 第一步:下载大漠插件、解压,运行“注册大漠插件到系统.bat”,把全部东东都复制到按键精灵的plugin目录下吧~ 第二步:创建一个文件夹,以d:\test 为例。把你要找的图(60.bmp)、大漠插件里的dm.dll 和RegDll.dll复制到这个文件夹。 第三步:打开按键精灵,创建一个新脚本。往附件(在软件左边框选项)里面添加dm.dll、Reg.dll和图60.bmp 二、复制以下代码到按键精灵 dim ys1,ys2,ys3,a,b,zbx,zby//自定义变量 ys1=9000//1和2点延时 ys1=9000//2和3点延时 ys1=9000//3和1点延时 a=15//纵向下移15单位 b=-15//纵向上移15单位 zbx=100//获取窗口句柄给定的坐标x zby=100//获取窗口句柄给定的坐标y PutAttachment "d:\test", "*.*" //意思是释放所有附件到d:\test目录。就是把有用的文件打包到test目录下 PutAttachment ".\Plugin", "RegDll.dll" //意思是释放RegDll.dll文件到按键精灵安装目录的Plugin目录下,用来完成大漠插件的注册 Call Plugin.RegDll.Reg("d:\test\dm.dll") //调用大漠插件,在按键精灵中使用 Set dm = createobject("dm.dmsoft") //用大漠插件创建一个对象dm dm_ret = dm.SetPath("d:\test") // 设置全局路径,以后你找图用的图片都默认是test目录里的图片了,否则你要用绝对路径d:\test\1.bmp来该表示图片 dm_ret = dm.LoadPic("*.bmp") // 字面意思是加载test目录下的所有图片 Hwnd = dm.GetPointWindow(zbx,zby)//用大漠软件获取给定坐标(zbx,zby)的窗口句柄,保存在Hwnd里 Call Plugin.Window.Move(Hwnd, 0, 0) // 把窗口移到屏幕的(0,0),即左上角 dm_ret = dm.BindWindow(Hwnd,"gdi","windows","windows",0) //这句用来绑定辅助操作的对象窗口 //下面是一条判断语句,如果绑定失败就会提示。那就从前面几几步中找原因吧 Delay 10 If dm_ret = 1 Then Else MessageBox "绑定失败,重启脚本或联系作者" EndScript

学会用按键精灵制作用脚本运行可执行程序

学会用按键精灵制作脚本之RunApp 运行命令教程: 用脚本运行可执行程序 来源:按键学院【按键精灵】Runapp命令,看上去是不是觉得so easy ?不就是runapp 某个程序的路径,然后就可以打开这个程序了吗?老话怎么说来着,越简单的东西越是不简单。Runapp使用起来也是处处暗藏杀机滴。 Runapp命令是个啥? 命令名称RunApp 运行 命令功能启动一个程序或者打开一个文件 命令参数参数1 字符串型,要运行的程序或者文件 重头杀机——你所要启动的程序是带参数的,runapp 不支持启动带参数的程序。 首先,我们可以使用进程查看工具,查看下我们要启动的程序是否是带有参数的。

然后,我们打开进程查看工具,然后点击我们要查看的程序,例如QQ程序。 图1的是QQ的快捷键方式属性;图2是进程工具查看到的QQ程序信息;图3是进程工具界面如果是带有参数的程序,用进程工具打开之后,弹出的图2界面,在程序路径后面会出现参数。 例如:F:\桌面\程序目录\Not.exe $-fl$ 解决方法之一: 1. 鼠标右键,创建快捷方式 1)右击创建好的快捷方式——>属性: 2)“目标内容”填写目标文件路径及参数: 3)F:\桌面\程序目录\Not.exe $-fl$

4)“起始位置”填写目标文件夹: 5)F:\桌面\程序目录 (用进程查看工具查看,有的情况下会发现,程序所在的位置并不是程序的目录,这里要注意确认,一定要填写程序的其实位置,程序所在的目标文件夹的位置) 如图所示: 2. 使用RunApp启动这个快捷方式,例如在此快捷方式在桌面时。 Call RunApp("C:\Users\Death\Desktop\Not.exe.lnk") 经过上面的两步就可以达到预想的目的了。 解决方法之二:

按键精灵命令

WQM按键精灵插件说明书 1.插件简介 WQM按键精灵插件作为按键精灵的一个插件,为按键精灵提供对WQM的全方位的控制功能,同时也能够提供对WQM中网页的全面控制功能。 2.插件功能说明 WQM插件提供三类控制命令:WQM全局控制命令、WQM浏览控制命令、页面控制命令,后台键盘鼠标命令,后台找色命令,全局控制命令,JS扩展命令 2.1.全局控制命令 1)Bind(WQM进程名) 功能:绑定最后一个正在运行的WQM进程,如果没有找到就启动一个WQM进程并绑定 参数:WQM进程名 返回值:进程ID 2)Tips(字符串) 功能:在托盘区显示一个气泡提示信息; 参数:提示信息; 返回值:无 3)SetSize(窗口宽度,窗口高度) 功能:将WQM窗口设置为指定大小; 参数: 参数1:窗口宽度; 参数2:窗口高度; 返回值:无 4)Save(网页地址,保存的文件路径) 功能:将指定url保存为文件; 参数: 参数1:需要保存的网页地址; 参数2:需要保存的文件路径; 返回值:无 2.2.浏览控制命令 1)Go(网页地址) 功能:当前标签页打开Url指定的网页;此操作是一个阻塞操作,如果网页没有打开,脚本不能继续执行。如果超过全局超时设定,将导致脚本中止; 参数: 参数1:需要打开的网页地址 参数2 布尔型:是否强制从服务器读取,默认为读取页面,可能读取本地缓存。 返回值:无 2)Back() 功能:当前标签的网页浏览向后退, 参数:无; 返回值:无 3)Forward()

功能:当前标签页前进; 参数:无; 返回值:无 4)Refresh(指定是否强制刷) 功能:刷新当前标签页 参数:参数1:指定是否强制刷新当前标签页,0表示正常刷新,1表示强制刷新返回值:无 5)TabNew () 功能:在WQM中新建一个标签页,并跳转到该标签页上; 参数:无 返回值:无 6)TabGoto(标签页) 功能:跳转到WQM中指定需要的标签页上 参数:整数类型; 返回值:无 7)TabClose() 功能:关闭当前标签页 参数:无 返回值:无 8)ScrollTo(水平滚动条位置,垂直滚动条位置) 功能:将当前网页滚动到指定位置; 参数: 参数1:水平滚动条位置; 参数2:垂直滚动条位置; 返回值:无 9)ClearHistory() 功能:清除浏览器的历史记录,无需跳出确认对话框; 参数:无 返回值:无 10)ClearTemp() 功能:清空IE临时文件 参数:无 返回值:无 11)ClearCookie() 功能:清除IE所有的Cookie 参数:无 返回值:无 12)GetUrl() 功能:返回当前页面的URL地址 参数:无 返回值:字符串,当前页面的URL地址 2.3.页面控制命令 1)HtmlClick(网页元素特征串) 功能:点击网页中的按钮或链接,或者是其他元素,无ID请指定tag;

按键精灵自动化办公插件

按键精灵自动化办公插件 来源:按键学院【按键精灵】“圣诞快乐~~” 在小编的印象里,圣诞节一般都是呵气成霜的日子。今年不一样哈,圣诞节天气还是十分暖和的。不知道童鞋们的城市是不是有在下雪,小编已经好久没有看见过雪花了~ 圣诞感言就到这里。今天小编要和大家分享的是一款办公插件。 懒人办公插件 在之前的院刊中,也分享过懒人办公插件。想必有不少童鞋都有使用过。 那么,是什么原因让小编忍不住再次要分享这个插件呢? 近期,懒人插件作者lxj1985 再次更新了插件,更新之后的插件更加给力,让小编忍不住想要分享给大家。 懒人插件更新内容 1、完善了EXCEL表格处理功能。 2、WORD类的处理功能重新编写,使其更适用于使用者。 3、ACCESS类不光可以操作ACCESS,还能对其他类别的数据库进行一定程度的操作。

4、编写了一份详细的的帮助文档,不光是在编程中用的上,在手动办公的过程中也能用的上这份帮助文档。 帮助文档的内容,作者大大写得非常的详细,每个命令的使用都附有例子说明: 使用方法 【调用懒人插件的方式有两种】 方法1: 1、将插件dll文件放在按键精灵安装目录下的plugin文件夹中。 2、打开按键精灵即可在按键精灵的插件命令中,找到新增的懒人插件命令,选择命令即可使用。

方法2: 如果插件(LazyOffice.dll)放在c:\test目录,使用以下代码对插件进行注册: Set ws = CreateObject("Wscript.Shell") ws.run "regsvr32 c:\test\LazyOffice.dll /s" 然后创建对象: //主脚本中使用插件命令,在脚本起始位置创建一次对象即可,如果有多开线程或者在控件事件中使用命令,则需在线程中控件事件中再次创建对象。 Set LazyExcel= CreateObject("Lazy.LxjExcel")//使用excel功能要创建的对象 Set LazyWord= CreateObject("Lazy.LxjWord")//使用word功能要创建的对象 Set LazyAccess= CreateObject("Lazy.LxjAccess")//使用Access功能要创建的对象 注意:帮助文档中的命令说明示例,是以第二种注册插件创建对象的方法。 第一种方法和第二种方法,代码上书写上的区别: Call https://www.sodocs.net/doc/0c11044150.html,zyOffice.ExcelWrite(参数1,参数2,参数3,参数4,参数5)//第一种方法 Call 对象名.ExcelWrite(参数1,参数2,参数3,参数4,参数5)//第二种方法 单元格列名形式转换 ●○有的命令是以A1,A2 这样的形式来指定需要操作的区域,例如修改表格背景色的命令:Call LazyExcel.ExcelRange(1,"A1:D5","背景颜色",6,Index)

按键精灵常用功能-详细解说

[命令]按键精灵常用功能-详细解说[1]-键盘动作 按键精灵常用功能-解说[版本5.0以上] 首先-启动按键精灵-看到主程序界面的“小灯泡”增加按钮了吗?点击它... 然后-这样就新建了一个脚本,并进入了脚本编辑器界面。(具体参见Qmacro基础资料https://www.sodocs.net/doc/0c11044150.html,/cn/qmacro/) 按键精灵常用功能-详细解说[1]-键盘动作-4个功能 (1)单个按键的模拟-模拟键盘的单个按键动作,可以是按1下、按住不动、弹起来等3种形式,可以根据自己的需要,设定执行次数。 (2)按键组合的模拟-模拟按键组合,比如ctrl+shift+G之类的,但是不能G+H 这样子哦,那要需要的时候怎么模拟G+H呢?使用(1)功能-按下G,再按下H,就等于G+H了嘛~~~(不同步?哦,计算机的反映速度是很快的!) (3)脚本暂停按任意键继续功能-这里可以设置一个变量,用来表示可能是哪个按键,比如设置了变量key,当key这个变量变动的时候...比如key=49的时候,表示按1就能使脚本继续...那么怎么知道哪个数字对应是哪个按键?请看(4)的功能。 (4)得到按键码-在左边的空白输入一个按键,右边就显示出相应的按键码哦。有一些特殊的按键码是多少呢?可以去下载个ASCII码表看看。 举例:打开一个记事本,光标停空白处,按1下你设定的快捷键开始执行你设计的脚本... Rem rem只是注释语句,可以做标记或解释用途。 Rem rem这一行,不会有功能,比如:KeyPress 49 10 Rem 按1键10次,换行 KeyPress 49 10 KeyPress 13 1 Rem 按下1键不动,2秒后弹起,换行 KeyDown 49 1 Rem 延时2000毫秒 Delay 2000 KeyUp 49 1 KeyPress 13 1 Rem 按shift+1组合键,换行 KeyDown 16 1 KeyPress 49 1 KeyUp 16 1 KeyPress 13 1 Rem 提示后,等待任意键继续

按键精灵1--6级答案

以下哪一个不是按键精灵的产品? 按键箱子 录制的脚本没有以下哪个功能? 记录鼠标特征码 下列哪一个命令不属于"全部命令"? 内核命令 按键精灵自带的抓图工具是? 按键抓抓 哪一种方法能够找到命令的帮助说明? 在全部命令中搜索命令,点击后帮助说明会出现在编辑器下方. 按键精灵不可以在以下哪个系统中使用? Linux 可以使用神盾功能的程序是? 小精灵商业版 旧版本的脚本导入到新版本中,以下哪种方法不可以纠正语法错误? 使用"自动缩进"功能 WaitClick命令的含义是? 按任意鼠标键继续 哪一类脚本程序是按键精灵官方授予销售权的? 小精灵商业版 只要在编辑脚本,切换输入法时,按键精灵就卡住了,可能是下列哪一个原因? Plugin目录下装有不是官方提供的插件引起的 关于加密脚本的描述,下列是错误的是? 只有会员输入密码可以解开加密脚本GetLastClick命令的含义是? 检测上次按过的鼠标键 按键精灵生成的小精灵程序的后缀名是? EXE 按键精灵会员不能享受的论坛权限是? 可以访问按键精灵“版版家园”专区享受版主资源 网页按键精灵是下列哪一个程序? wqm.exe 按键精灵的产品包括以下哪一个? 按键盒子 按键精灵是下列哪一个程序? 按键精灵9.exe 按键精灵会员卡注册码,没有以下哪一种? 天卡(1天) UnlockMouse命令的含义是? 解除锁定鼠标位置 按键精灵会员不能享受的资源是? 免费小精灵的源代码 RightUp命令的含义是? 右键弹起 按键精灵的功能不包括? 自动发明汽车、飞机、火箭等机器 按键精灵能兼容下列哪一种语言? VBS 不能用抓抓工具直接获取的是? PID 关于按键精灵的描述,以下正确的是? 按键精灵是一款绿色的模拟键盘鼠标操作的软件 脚本编辑界面上没有的按钮是?启动 与取色判断命令没有直接关系的参数是? 按键码 以下哪种方式可以在脚本编辑界面中获取到新的插件? 点击"资源库"按钮,然后导入需要的插件 LeftClick命令的含义是? 左键单击 按键精灵官方网站的网址是? https://www.sodocs.net/doc/0c11044150.html,/ RestoreMousePos命令的含义是? 恢复上次保存的鼠标位置 如果按键精灵在某些环境失效,可以使用下列哪个工具? 神盾 SaveMousePos命令的含义是? 保存当前鼠标所在位置 GetCursorPos命令的含义是? 得到鼠标位置坐标 键盘命令的类型不包括? 锁定 按键精灵里运算符乘号是? *

按键精灵选项卡的使用

按键精灵选项卡的使用 一、选项卡介绍 (1)创建选项 QUI的选项卡其实就是一个分页功能的控件和VB的SSTab控件的功能是一样的。 二、选项卡的属性 选项卡总共有11个属性,包含4个基本属性和5个位置属性,2个其他属性。 基本属性分别是:名称(Name)、显示(Visable)、有效(Enabled)、自定义。 位置属性分别是:左边(Left)、上边(Top)、宽度(Width)、高度(Height)、显示顺序(ZOrder)。 其他属性:字体、初始选项(Tab)。 三、选项页的使用 (1)创建选项 1.先创建一个选项TabControl1。

选项卡创建后默认有两个选项,分别是“选项页1”,“选项页2”。那我人如何来改变选项卡的数量和名称? 2.点击属性栏上的【自定义】的更多选项设置后面的三个小点点。 点击完成后就可以看到“选项卡控件设置页面”了。 在这里可以通过页面上面的“增加”、“删除”、“上移”、“下移”来控制标签页的数量和顺序,也可以双击标签名然后修改标签的名称。 3.点击增加,新增一个标签。默认名称是“选项页3”。后面增加的标签名称为“选项页4”,以此累加上去。

4.也可以删除标签,比如删除“选项页2”。或者是把“选项页3”移动到最顶端。 5.在标签页设置界面修改的时候,窗体上的标签页是不会改变的。如果想让它确实产生效果,修改完成后,点击界面下方的【确定】。 然后就可以看到窗体上的标签页按照我们修改的发生了变化。 以上就是修改标签页里面标签内容的方法了。

那它是否像我们之前所说的,能够达到分页的效果? 6.先选择"Tab3"。然后在"Tab3"中创建一个按钮。 创建完成后,再点击"Tab1",会看到Button1其实已经看不到了。 那在运行的时候是不是也是这样子的? 7.设置QUI为脚本界面,设置标签页的初始选项为0。也就是从左边数起第一个标签,也可以设置成1,这个下标的上限为当前标签页的标签数量。 然后保存脚本,进入调试,显示界面。 点击"Tab3","Tab1"。如果不出意外,看到的情况跟在编辑的时候是一样的。 (2)复制/剪贴/粘贴 既然分页里面可以创建控件,那可以把现成的控件直接拖到分页里面去?答案当然是否定的。 那有什么方法可以把已经创建好的控件拖到分页里面去? 最最常用的方法就是把控件剪贴,然后选择某一个标签页再粘贴进去。 粘贴成功后,这个控件就在会在这个标签的左上角。 比如,我们把一个输入框粘贴到其他中一个标签当中,粘贴后默认放在标签的左上角,然后再拖到我们想要放的那个位置去。

按键精灵命令大全

一.按键精灵基本命令 键盘命令 1. GetLastKey检测上次按键 命令名称:GetLastKey 检测上次按键 命令功能:检测上次按键 命令参数:参数1 整数型,可选:变量名 返回值:无 脚本例子:(8.x语法) //脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key 里。 Key=GetLastKey() If Key = 13 Then Msgbox "你上次按下了回车键" End If 2. KeyDown 按住 命令名称:KeyDown 按住 命令功能:键盘按住 命令参数:参数1 整数型,键盘虚拟码(8.X支持按键字符) 参数2 整数型,次数 返回值:无 脚本例子:(8.x语法) //KeyDown、KeyDownS、KeyDownH //KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用 //KeyDownH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项 KeyDown 65,1 //65是A键的按键码,上面的语句表示按住A键1次 KeyDown "A",1 //上面的支持按键字符,语句表示按住A键1次 3. KeyPress按键 命令名称:KeyPress 按键 命令功能:键盘按键 命令参数:参数1 整数型,键盘虚拟码(8.X支持按键字符) 参数2 整数型,次数 返回值:无 脚本例子:(8.x语法) //KeyPress、KeyPressS、KeyPressH //KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用 //KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项 KeyPress 65,1 //65是A键的按键码,上面的语句表示按A键1次 KeyPress "A",1 //上面的支持按键字符,语句表示按A键1次

(完整版)按键精灵常用脚本命令汇集

//~~~~~~~~~~{[做后台的准备]}~~~~~~~~~~~ //下面,用标题名来找父窗口 Hwnd = Plugin.Window.Find(0, "无标题- 记事本") //下面,根据父窗口来找子窗口(找对了标题名才有效) HwndEx = Plugin.Window.FindEx(Hwnd, 0, 0, 0) //下面,用程序名来找父窗口 Hwnd = Plugin.Window.Find("Notepad", 0) //下面,根据父窗口来找子窗口(找对了类名才有效) Hwnd = Plugin.Window.FindEx(Hwnd, 0, "Edit", 0) //~~~(也可以改指定程序的标题名来得来句柄)~~~ //下面,将指定程序名的标题名变为变量 Hwnd = Plugin.Window.Find("Notepad", 0) //改变窗口标题 Call Plugin.Window.SetText(Hwnd,"AJJL") //*********》之后可加第一种父子窗口就OK了《********* //~~~如果以上都不行,只剩下最后一种方法~~~~ //下面,鼠标指向的程序定为Hwnd这个变量(不过一定要加标记,否则变为假后台) hwnd=Plugin.Window.MousePoint() Rem star Goto star //区域模糊找色 //(XY,是坐标)(后面的是句柄,左X,上Y,右X,下Y,16位颜色,找的方式,相似度)XY = Plugin.Bkgnd.FindColorEx(Hwnd, 0, 0, 20, 20, "FFFFFF", 0, 0.9) //将XY坐标变为变量,再折分成X坐标和Y坐标。 MyArray = Split(XY, "|") X = Clng(MyArray(0)): Y = Clng(MyArray(1)) //后台判色 Color = Plugin.Bkgnd.GetPixelColor(hwndex,300,150) If color = "020503" Then //根据固定32位地址的值加红蓝(HP少于就。。。) Val = Plugin.Memory.Read32Bit(Hwnd, &H400000) //注意格式:符号&+字母H+8位地址 If clng(val)<=clng(HP)

按键精灵使用方法

“按键精灵”是一款全新概念的键盘鼠标动作模拟软件,它可以借助预先定制好的成百上千种动作脚本实现各种形式键盘鼠标动作的完美模拟或替代,用户几乎不需要什么专业脚本语言知识即可通过软件所独创的脚本模板来定制脚本、调用和运行特定脚本,从而快速实现键盘鼠标动作的“复制”。这款软件最大的本领之一就是可以几乎模拟所有的键盘鼠标动作,比如用户定制一个论坛注册ID的动作脚本,则软件就可以在各个指定的论坛为用户自动注册新用户ID,用户既不需要通过鼠标点选在各个论坛间切换,也不需要手工输入注册信息,是不是极大的节省了用户的操作时间?又是不是最大程度的降低了键盘鼠标的使用损耗呢? 一、小试身手,看看这软件能干啥 “按键精灵”既然能够代替用户进行各种各样的电脑操作,那么我们就不妨来亲身进行一番验证。打开软件(如图1),在它的主界面中用户可以看到软件已经将其内置的上百个现成的动作脚本按照日常应用、网络游戏、鼠标右键点我和脚本技巧等用途类别进行了归类,这样当然是方便用户的查找和用户日常对动作脚本的管理。

图1:新版“按键精灵”的主界面 接下来我们随便挑选一个动作脚本,比如“日常应用”中内置的一个叫做“QQ消息群发器”的动作脚本,这是一个可以自动向特定QQ好友连续群发消息的动作脚本。用户首先在QQ软件中打开对方好友的聊天窗口,接着将“按键精灵”切换到“日常应用”面板(如图2)。 图2:软件的“日常应用”面板

选中那个“QQ消息群发器”的目标动作脚本,随后按下软件默认的启动动作脚本快捷键F10,则软件即可自动按照该动作脚本预先定制好的群发内容和每一句消息发送之间的时间间隔来群发消息,而用户呢?可以在一旁端着咖啡偷着乐吧。事实上,软件内置的这个动作脚本,就是每隔1秒钟,自动向对方QQ 好友发送一句李白的“静夜思”的诗句(如图3)。 图3:在QQ聊天窗口自动群发消息 应用提示:针对这个动作脚本,如果用户想修改一下自动发送消息的内容或调整一下每个句子间发送

相关主题