|
置随机数种子 ()局_延时 = 到整数 (按键 [参_标识 ].间隔框.内容 )循环判断首 ()按键消息 (集_窗口句柄, 按键 [参_标识 ].键代码 )判断开始断 (选择框_浮动.选中 = 真) . 程序_延时 (局_延时 )循环判断尾 (集_是否循环 )线程_销毁 (按键 [参_标识 ].线程句柄 )按键消息 (集_窗口句柄, 按键 [1 ].键代码 ) 判断开始断 (选择框_浮动.选中 = 真) . 时钟2.时钟周期 = 局_延时
变量名 | 类 型 | 静态 | 数组 | 备 注 | vkeyCode | 整数型 | | | 按下参数 | 整数型 | | | 抬起参数 | 整数型 | | |
vkeyCode = MapVirtualKeyA (参_键码, 0 )按下参数 = 生成键盘消息lParam (1, vkeyCode, 假, 假, 假, 假)抬起参数 = 生成键盘消息lParam (1, vkeyCode, 假, 假, 真, 真)PostMessageA (参_句柄, 256, 参_键码, 按下参数 ) 程序_延时 (10 )PostMessageA (参_句柄, 257, 参_键码, 抬起参数 ) |
生成键盘消息lParam | 整数型 | | |
重复计数 | 短整数型 | | | | 扫描代码 | 字节型 | | | | 是否为扩展键 | 逻辑型 | | | | 上下文代码 | 逻辑型 | | | | 先前的键状态 | 逻辑型 | | | | 过渡状态 | 逻辑型 | | | |
ret = 左移 (扫描代码, 16 )ret = 位或 (ret, 重复计数 )如果真 (是否为扩展键 )ret = 位或 (ret, 左移 (1, 24 )) 如果真 (上下文代码 )ret = 位或 (ret, 左移 (1, 29 )) 如果真 (先前的键状态 )ret = 位或 (ret, 左移 (1, 30 )) 如果真 (过渡状态 )ret = 位或 (ret, 左移 (1, 31 )) 返回 (ret)
同一个子程序,放在时钟周期事件里,每个延时周期里只执行一次
放在线程里循环,每个延时周期里都执行两次,是什么原因?
发送按键消息,线程循环里面,每个循环周期都会连续发送两个按键字符,时钟周期事件则只会发送一次
由此得出结论:
①PostMessageA发送按键消息这样写是没问题的
②线程里的循环,每个延时周期里都执行两次循环事件,这是什么原因呢?精易模块多线程的bug吗?
补充内容 (2021-11-25 23:27):
用的是精易模块 线程_启动多参_整数型()
我再测试一下其他方式启动线程
补充内容 (2021-11-25 23:32):
测试结束,所有线程启动方式,得到的结果都是:
每个循环周期里线程都执行了两次循环事件
这是为什么呢?应该如何解决? |
|