TC官方合作论坛

标题: 奇怪呃,为什么启动一个新线程就大漠按键就没用了 [打印本页]

作者: Sky_Lsy    时间: 2015-7-13 12:05
标题: 奇怪呃,为什么启动一个新线程就大漠按键就没用了
变量 大漠对象=插件("dm.dmsoft"),卡键句柄=数组()
功能 卡键()
    变量 hwnd,KJCS=数组()
    hwnd=大漠对象.GetForegroundWindow()
    大漠对象.BindWindow(hwnd,"dx.graphic.2d","windows","dx",0)
    等待(1000,false)
    大漠对象.KeyPressChar("space")
    遍历(变量 i = 1; i <= 6; i++)
        KJCS[0]=hwnd
        KJCS[1]=下拉框获取文本("卡键下拉框"&i)
        KJCS[2]=下拉框获取文本("卡键延时框"&i)
        卡键句柄[hwnd]=线程开启("CycleKeyPress",KJCS)
    结束
结束
功能 CycleKeyPress(KJCS)
    变量 hwnd=KJCS[0],YKDJ=KJCS[1],KJYS=KJCS[2]
    循环(真)
        大漠对象.KeyPressChar(YKDJ)
        等待(KJYS,假)
    结束
结束


这样,为什么按空格键能生效,之后启动的按键线程不会生效呢?


作者: 言术    时间: 2015-7-13 12:16
参考下大漠多开。
作者: Sky_Lsy    时间: 2015-7-13 12:49
言术 发表于 2015-7-13 12:16
参考下大漠多开。

具体是哪里出了问题呢,是要重新创建对象,还是要重新绑定窗口?
作者: 这论坛不错    时间: 2015-7-13 14:38
一个大漠对象只能操作一个窗口,你开两个线程,1个大漠对象是不能操作2个窗口的,你看看大漠的帮助文档,说明写得很清楚
作者: 250366688    时间: 2015-7-13 18:08
要在子线程里 重新声明一个大漠对象 最好
作者: Sky_Lsy    时间: 2015-7-13 20:51
250366688 发表于 2015-7-13 18:08
要在子线程里 重新声明一个大漠对象 最好

重新声明一个对象,执行的按键是前台啊,绑定又不行,因为主线程已经绑定过了,这怎么办啊
作者: Sky_Lsy    时间: 2015-7-13 20:52
这论坛不错 发表于 2015-7-13 14:38
一个大漠对象只能操作一个窗口,你开两个线程,1个大漠对象是不能操作2个窗口的,你看看大漠的帮助文档,说 ...

重新弄一个对象,执行的按键是前台啊,绑定又失败,因为主线程已经绑定过了,这怎么办啊我不是想操作两个窗口每个窗口都有一个主线程创建了对象的,循环按键是子线程
作者: 这论坛不错    时间: 2015-7-13 21:41
Sky_Lsy 发表于 2015-7-13 20:52
重新弄一个对象,执行的按键是前台啊,绑定又失败,因为主线程已经绑定过了,这怎么办啊: ...

看大漠说明,自己想办法
作者: 250366688    时间: 2015-7-16 06:42
绑定过了没有关系。。 大漠的多对象绑定是分为主副对象的。 第一个绑定窗口的为主对象,第二二三四 都是附属
但是要求绑定模式必须完全一致,而且附绑定对象可以解绑操作,但是主绑定一旦解绑 就会解绑所有对象
作者: 250366688    时间: 2015-7-16 06:43
多对象 多线程操作单窗口是很正常的事情, 检测线程负责血量 坐标等, 操作线程负责按键什么的




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1