TC官方合作论坛
标题:
大漠多线程绑定多窗口同时操作
[打印本页]
作者:
ViewTran
时间:
2018-8-19 02:34
标题:
大漠多线程绑定多窗口同时操作
本帖最后由 ViewTran 于 2018-8-19 17:14 编辑
大漠多线程绑定多窗口同时操作,绝对的新手福利!
很多新手不懂多窗口同时操作,这里就给大家讲一下
先说下思路吧!
假如我们有2个窗口,先枚举出2个窗口句柄
然后分割字符串并得到窗口的数量(2)
然后创建主线程,把窗口数量传参,这里窗口数量值(2)
还要把数量存入dm数组,方便后面创建多个大漠对象。
不然无法同时操作多个窗口。这里很重要。
字符串 = 枚举窗口("Notepad", 1)
窗口数量 = 字符串分割(字符串, "|", 窗口句柄数组)
如果(窗口数量 > 0)
主线程ID = 线程开启("主线程", 窗口数量)
数组增加元素(dm, 窗口数量, null)
否则
消息框("获取窗口失败!", "提示")
结束
复制代码
然后在主线程里面遍历并创建了2个子线程,
每一个子线程操作一个窗口,所以我们要
把线程句柄存入到线程句柄数组,方便后面单独操作窗口。
功能 主线程(数量)
遍历(变量 i = 0; i < 数量; i++)
线程句柄数组[i] = 线程开启("子线程", i)
变量 线程句柄 = 线程句柄数组[i]
数组增加元素(线程句柄数组, 线程句柄, i)
结束
结束
复制代码
然后就是子线程,里面包含了绑定窗口和操作功能。
这里的下标是主线程遍历出的值,第一个子线程的值是0,第二个子线程的值是1。
功能 子线程(下标)
绑定窗口(下标)
操作(下标)
结束
复制代码
绑定窗口就是创建大漠对象,并绑定相应的窗口句柄。
注意代码里的[下标],这里值就是各个数组里面的下标。
功能 绑定窗口(下标)
变量 窗口句柄, dm_ret
窗口句柄 = 窗口句柄数组[下标]
// 调试输出(窗口句柄)
如果(窗口句柄 > 0)
dm[下标] = com("dm.dmsoft")
dm_ret = dm[下标].BindWindow(窗口句柄, "gdi", "windows3", "windows", 0)
如果(dm_ret == 1)
调试输出("绑定窗口成功: " & 窗口句柄)
否则
调试输出("绑定窗口失败!")
结束
结束
结束
复制代码
建议新手把每个功能都封装成一个子程序,方便调用也方便调试和维护
切记不要把创建线程放在循环里!
切记不要把创建线程放在循环里!
切记不要把创建线程放在循环里!
[attach]26615[/attach][attach]26616[/attach][attach]26614[/attach]
作者:
q1040580918
时间:
2018-8-19 11:47
36+5262
作者:
husiyu317
时间:
2018-8-19 15:54
66666666666666666
作者:
ws1648
时间:
2018-8-20 00:08
楼主辛苦了,给楼主点赞
作者:
ws1648
时间:
2018-8-21 17:10
听说多线程还要加守护线程,楼主大神能告诉我们怎么写吗?
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1