|
本帖最后由 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)
- 调试输出("绑定窗口成功: " & 窗口句柄)
- 否则
- 调试输出("绑定窗口失败!")
- 结束
- 结束
- 结束
复制代码
建议新手把每个功能都封装成一个子程序,方便调用也方便调试和维护
切记不要把创建线程放在循环里!
切记不要把创建线程放在循环里!
切记不要把创建线程放在循环里!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
查看全部评分
|