按键精灵多线程多开脚本开发教程

按键精灵多线程多开脚本开发教程

ID:38926437

大小:4.01 MB

页数:8页

时间:2019-06-21

按键精灵多线程多开脚本开发教程_第1页
按键精灵多线程多开脚本开发教程_第2页
按键精灵多线程多开脚本开发教程_第3页
按键精灵多线程多开脚本开发教程_第4页
按键精灵多线程多开脚本开发教程_第5页
资源描述:

《按键精灵多线程多开脚本开发教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、按键精灵实现多线程多开脚本教程来源:按键学院【按键精灵】“多线程到底怎么实现?好复杂!” 小编时常在论坛里,看到有童鞋发出这样的疑问。小编觉得多线程就好似冰山美人,外冷内热。乍一看,好像很不好相处,近一步,则会发现其实她很温柔。到底有多温柔呢?一起来看看~QUI界面写代码之前,我们先画脚本的Qui界面。如下图:思路我们拿记事本作为多开的对象。脚本由以下三个按钮点击事件组成:1、点击QUI界面中的"一键启动"按钮,启动记事本,启动的记事本个数由InputBox1里填入的数值决定。启动线程,将线程id、窗口句柄记录到ini文件中。在线程调用的子程序里,对记事本输入内容。2、点击“关闭

2、所有窗口”按钮,则读取ini中保存的线程id、窗口句柄,关闭线程之后关闭窗口。3、点击“暂停”按钮,则读取ini文件中和InputBox2文本框中对应数值的窗线程id,暂停该线程。再次点击“暂停”按钮,则读取ini文件中和InputBox2文本框中对应数值的窗线程id,恢复该线程。“一键启动”按钮点击事件步骤:1、启动记事本窗口。2、修改记事本的标题名称。3、每个记事本窗口对应启动一个线程。4、将窗口句柄、线程id记录到ini文件中。1、启动记事本窗口。              获取InputBox1中的数值。利用for循环打开记事本窗口。     Fori=1ToForm1.

3、InputBox1.Text      //打开记事本      RunApp"Notepad.exe"Next      打开记事本之后,我们需要判断下记事本是不是已经打开,如果打开了则获取窗口句柄,如果没有打开,则继续循环判断记事本是不是已经打开。避免当游戏窗口还没有打开获取不到窗口句柄的情况。      do                hwnd=Plugin.Window.Find(0,"无标题-记事本")//获取记事本句柄      Loopwhile(Hwnd=0)2、修改记事本窗口的标题。              修改了窗口标题,便于我们管理多窗口。且:第1点中

4、说到的判断记事本窗口是不是打开,当游戏窗口标题都是一样的情况下,这个方法就会失效。第一个窗口打开了,第二个窗口不管有没有打开,那么获取到的还是第一个窗口的句柄。     Do         Ifstext="第"&i&"窗口"Then            ExitDo        EndIf        call  Plugin.Window.SetText(hwnd,"第"&i&"窗口")        stext=Plugin.Window.GetText(hwnd)      Loop  //循环的第一次修改窗口标题,第二次开始判断标题有没有修改成功,没有的话则继续

5、修改,成功的话则退出do循环。3、启动多线程。( 线程相关知识 )      线程ID=BeginThread(打字)       在for循环里加入这一句启动线程的代码,每循环一次开启一个新的线程。      所以,在启动完线程之后,要趁热把线程id记录起来。       4、将窗口句柄、线程id存放到ini文件中。 ( ini文件读取写入相关知识 )            CallPlugin.File.WriteINI("窗口句柄","第"&i&"窗口",hwnd,"C:记录.ini") CallPlugin.File.WriteINI("线程ID","第"&i&"窗口"

6、,线程ID,"C:记录.ini") 线程调用子程序被线程调用的子程序和平常的子程序有什么不同吗?有两点不一样:1、被线程调用的子程序,不支持参数传递。2、被线程调用的子程序,不支持dim定义的局部变量的传递。    建立一个要被线程调用的子程序,命名为“打字”Sub打字()   窗口句柄=hwnd//hwnd是环境变量,在一键启动事件中,将窗口句柄赋值给了它。  Do  hwnds=Plugin.Window.FindEx(窗口句柄,0,"Edit",0)  LoopWhile(hwnds=0)  Fori=1To200      CallPlugin.Bkgnd.SendSt

7、ring(hwnds,i)      CallPlugin.Bkgnd.KeyPress(Hwnds,13)   Next      EndSub注意:为什么在子程序的开头,要拿一个新的变量 窗口句柄 去获取 hwnd 的值呢?本例中,我们循环多开窗口的时候,每循环一次,hwnd的值就变化一次。循环第一次,hwnd的值为:328202,启动线程之后,调用 sub打字() 子程序,获取记事本的子窗口句柄。 循环第二次,hwnd的值为:197298,启动线程之后, 调用 sub打字(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。