刚接触按键精灵多线程想写个多线程脚本就是不知道怎么样用多线程格式

“多线程到底怎么实现好复杂!” 小编时常在论坛里,看到有童鞋发出这样的疑问小编觉得多线程就好似冰山美人,外冷内热乍一看,好像很不好相处近一步,則会发现其实她很温柔 到底有多温柔呢?一起来看看~

  1. 写代码之前我们先画脚本的Qui界面。如下图:

  2. 我们拿记事本作为多开的对象脚本甴以下三个按钮点击事件组成:1、点击QUI界面中的"一键启动"按钮,启动记事本启动的记事本个数由InputBox1里填入的数值决定。启动线程将线程id、窗口句柄记录到ini文件中。在线程调用的子程序里对记事本输入内容。2、点击“关闭所有窗口”按钮则读取ini中保存的线程id、窗口句柄,关闭线程之后关闭窗口3、点击“暂停”按钮,则读取ini文件中和InputBox2文本框中对应数值的窗线程id暂停该线程。再次点击“暂停”按钮则讀取ini文件中和InputBox2文本框中对应数值的窗线程id,恢复该线程

  3. “一键启动”按钮点击事件

    1、启动记事本窗口。2、修改记事本的标题名称3、每個记事本窗口对应启动一个线程。4、将窗口句柄、线程id记录到ini文件中

  4.          打开记事本之后,我们需要判断下记事本是不是已经打开如果打開了则获取窗口句柄,如果没有打开则继续循环判断记事本是不是已经打开。避免当游戏窗口还没有打开获取不到窗口句柄的情况

  5. 被線程调用的子程序和平常的子程序有什么不同吗?有两点不一样:1、被线程调用的子程序不支持参数传递。2、被线程调用的子程序不支持dim定义的局部变量的传递。     建立一个要被线程调用的子程序 命名为 “打字”

  6. 注意:为什么在子程序的开头 ,要拿一个新的变量 窗口句柄 去获取 hwnd 的值呢 本例中,我们循环多开窗口的时候每循环一次,hwnd的值就变化一次 如果顺利循环下去没有问题,但是如果第一个窗ロ开启的时候卡住了呢?第二个窗口开启的速度比第一个快hwnd中存放的数据变成了第二个窗口的句柄,这个时候第一个窗口缓过来了它調用到的hwnd里已经不是自己的窗口句柄,而是第二个窗口的

    所以, 当第一个窗口启动线程调用 sub 打字() 子程序,在子程序的开头位置第一個窗口的窗口句柄hwnd用新的变量存起来。 新的变量没有定义默认是dim局部变量,局部变量是不能在线程间传递的所以它只在当前线程有效,不影响其它线程

  7. 1、当按钮的标题名称为“暂停”的时候:     暂停InputBox2文本框中数值对应的线程。并且将按钮的标题修改为"继续" 2、当按钮的標题名称为“继续”的时候:     恢复InputBox2文本框中数值对应的线程。并且将按钮的标题修改为"暂停"

  8. “关闭所有窗口”按钮点击事件

    1、 获取ini文件Φ记录的线程id,关闭所有线程2、 获取ini文件中记录的窗口句柄,关闭所有记事本窗口

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相关领域专业人士。

作者声明:本篇经验系本人依照真实经历原创未经许可,谢绝转载
  • 你不知道的iPad技巧
新手刚学不懂。别人说Sub结尾加個ENDSUB就可以了。为什么加上后反而不能运行。谁能给个简单的多线程找图==... 新手刚学不懂。别人说Sub 结尾加个END SUB就可以了。为什么加上後反而不能运行。谁能给个简单的多线程找图= =?

多线程其实就是你建立一个子程序加上多线程命令,让子程序和你这个脚本一下运行这就是多纯种。例子:

你对这个回答的评价是

参考资料

 

随机推荐