TC官方合作论坛

标题: 单开的脚本基本上能写点基本的了,今天实验双开结果悲剧收场,请帮忙分析下原因 [打印本页]

作者: f45601535    时间: 2012-8-29 20:06
标题: 单开的脚本基本上能写点基本的了,今天实验双开结果悲剧收场,请帮忙分析下原因
我的思路是这样的

空间   双开

定一个全局变量

整型  线程句柄

1、自定义个功能     
功能 逻辑型  进行游戏()                        这里就写简单的动作
键盘.按键(9,1)
dm.MoveTo (584,309)
dm.LeftClick()

2、定义二个热键         热键里面的内容几乎一样
      热键1

整型 是否成功
辅助.等待(2000)
整型 鼠标窗口=窗口.鼠标所在窗口句柄()
窗口.设置位置(鼠标窗口,-20,10)
辅助.等待(500)
是否成功=dm.BindWindow(鼠标窗口,"dx2","windows","windows",0)
辅助.等待(1500)
线程句柄=线程.开启("双开.进行游戏","")


热键2

整型 是否成功
辅助.等待(2000)
整型 鼠标窗口=窗口.鼠标所在窗口句柄()
窗口.设置位置(鼠标窗口,700,10)
辅助.等待(500)
是否成功=dm.BindWindow(鼠标窗口,"dx2","windows","windows",0)
辅助.等待(1500)
线程句柄=线程.开启("双开.进行游戏","")


嘿嘿我的想法是不是有点,是不是我的思路不对啊~~~~~~~~~反正是失败了~~~谁能提供下思路吗?
那如果我定义2个功能,让功能里面的内容一致,,然后分别用热键去开启一个,这样会不会就没事了?
是争夺资源造成的吗



作者: 陌上青衣。    时间: 2012-8-29 20:13
绑定窗口在线程里进行
作者: 孤烟    时间: 2012-8-29 20:18
问题出在
整型  线程句柄
你全局变量设置成句柄,那么你开一次游戏,句柄就会变,前面开的完全乱了
多开并不一定要用多线程,你这种,一个游戏一个窗口的话,热键里面写单线程就可以满足
如果要用多线程,那么注意句柄值不要混乱了
作者: 夏末    时间: 2012-8-29 20:35
你2个线程 用了同一个 变量 线程句柄   保存
后面的会覆盖 之前的  你要换一个变量 区别开
作者: cylhb    时间: 2012-8-29 21:10
大漠,绑定必须在线程内执行

并且,如果要控制线程,最好分开2个变量来保存句柄
作者: f45601535    时间: 2012-8-29 21:17
回复 5楼cylhb的帖子

我现在又采用了一个新的方法 还是不行,
就是 分别建立2个热键,没个热键都有完成的代码,单独运行其中一个都没问题,就是同时运行2个就行,只能正常运行第一个开启的,第2个就没有任何效果
作者: f45601535    时间: 2012-8-29 21:41
嘿嘿  谢谢各位的帮忙,问题已经解决了~~~~~又一难关被攻克了 我也会多开做多任务了
作者: 梦里只影向你    时间: 2012-8-29 21:42
你要两个热键控制两个窗口 开启脚本的话,你可以,每一个热键事件里面,就写,获得鼠标指向的句柄,然后将这个句柄作为线程开启的参数,开启线程,在线程函数里面绑定窗口,然后调用主脚本内容




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