按键精灵多线程同时运行手机版,多线程内的子程序是同时运行的吗?

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

  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技巧

我要回帖

更多关于 按键精灵多线程同时运行 的文章

 

随机推荐