TC官方合作论坛
标题:
多线程,大漠对象及窗口绑定问题
[打印本页]
作者:
wwwlovea
时间:
2013-9-8 14:20
标题:
多线程,大漠对象及窗口绑定问题
第一多线程的开启后扩展开启到底有什么区别,使用的时候具体用哪个呢?
第二在多线程中大漠对象的创建,我现在使用的是TC4.0以后的版本,大漠对需要在每个线程中都创建一次吗,我做过测试好像只在外面创建一个大漠对象就可以了,但是不知道具体原因,所以有次疑问。大漠窗口的绑定需要在每个线程中都绑定(操作同一个窗口非多开)吗?
作者:
jianqiumy
时间:
2013-9-8 15:54
第一:以我理解,没什么大分别,
这里"我的程序"是空间名",线程方法"是执行函数; "销毁操作"也是执行函数,"参数"有就传,没有就留空""
线程.扩展开启("我的程序.线程方法","我是参数A","我的程序.销毁操作","我是参数B")
扩展开启线程,就是执行"线程方法"后,直接执行销毁操作结束线程(也就是调用另一个函数结束这个线程)
.销毁操作;里面是一个函数(自定义执行动作)
线程.开启("我的程序.线程方法","我是参数")
线程.开启(也可以做到,代码都是自己写的,想怎么样就怎么样写)
用那一个看自己需要吧,都可以()
4.0后~~一个对象对应一个窗口(不管这个窗口有多少条线程)--只需要绑定一次
作者:
wwwlovea
时间:
2013-9-8 19:22
回复
2楼
jianqiumy
的帖子
十分感谢你的回答!
作者:
wwwlovea
时间:
2013-9-8 19:25
回复
2楼
jianqiumy
的帖子
我想问一下TC在使用大漠多线程的时候既然一个对象对应一个窗口,只需要绑定一次,那么这个绑定操作是不是就可以在线程外面写了,不用写进线程内部,同样解绑也是写在线程外对吗??
作者:
jianqiumy
时间:
2013-9-8 19:38
回复
4楼
wwwlovea
的帖子
与线程无关的~~~
你不用线程也行~~不过会把你卡得一B一B的,
多开的话还建议还是用线程,论坛里有很多事例~~参考一下别人的~~理解了怎么用都行
你要是用插件绑定,要后台或者前台,离不开线程的~~~方方面面都靠线程来控制~~
例如:你绑定窗口一,窗口二,那你如何用来控制那个是窗口一那个是窗口二呢?
比如你一个游戏你要暂停都要通过线程来控制的,TC就是线程好用~~
对啊,
解绑一样,但是你要是多窗口,对应下标就行了
反正论坛里有很多事例~~自己多看~~看看基础也是要的
作者:
wwwlovea
时间:
2013-9-8 20:39
回复
5楼
jianqiumy
的帖子
[attach]11012[/attach]
我用的TC4.0以后的版本,在运行中使用了大漠插件,但是这个是出现这个问题怎么办呢.
namespace XATC
//全局变量
变量 gamehadle,dm,hpHandle
变量 hptext
//开始按钮_点击操作
function start_click()
//如果没有获得游戏窗口句柄就提示并跳转到结束
if(gamehadle==0 || gamehadle==null)
辅助.消息框("请先获得游戏窗口再启动!")
goto sign1
endif
//激活游戏窗口
dm.SetWindowState(gamehadle,1)
//绑定游戏窗口
isbind = dm.BindWindow(gamehadle,"dx","dx","dx",0)
dm.delay(50)
//检测大漠工具绑定游戏窗口是否成功,
if(isbind==0)
statictext.settext("tishi","大漠插件绑定游戏窗口失败!")
goto sign1
endif
//自身窗口最小化
//window.setwindowmin(window.getmyhwnd())
hptext = edit.gettext("edit0")
sign1:
endfunction
//加血函数
function addhp()
while(true)
start = 461 //加血起点坐标
end = 676 //加血终点坐标
leng = end - start
addx = start + leng * hptext /100 //加血X坐标
//dm.MoveTo(addx,799)
//dm.delay(5000)
dm.MoveTo(1386,539)
dm.delay(50)
dm.LeftClick()
//变量 intX,intY
////大漠区域着色
//dm.FindColor(addx,799,676,809,"2c2b27-090c0e",0.9,0,intX,intY)
////如果在加血坐标点到终点找到黑色就加血(按F1)
//if(intX >= 0 && intY >= 0)
//dm.KeyPress(112)
//endif
endwhile
endfunction
//退出按钮_点击操作
function exit_click()
//调用暂停热键关闭所有线程
XATC.hotkey0_onhotkey()
//解除绑定窗口
if(dm.IsBind(gamehadle))
dm.UnBindWindow()
endif
help.exit()
endfunction
//获得游戏窗口按钮点击事件
function button0_click()
help.confirmationbox("点击确定后鼠标移动到游戏窗口停留5秒获得游戏窗口","获得游戏窗口",1,真)
help.sleep(3000)
string message
gamehadle=window.getmousemovewndhand()
statictext.setcolor("tishi",#ff0000)//设置提示标签字体红色
if(gamehadle!=0)
message=window.getwindowcaption(gamehadle)
statictext.settext("tishi",message)
else
statictext.settext("tishi","未获得窗口")
endif
endfunction
//界面初始化
function init()
//设置最小化的时候隐藏到托盘
help.settray("my_tray",false)
//检测是否注册大漠插件
isreg = help.isregister("dm.dmsoft")
if(!isreg)
//如果没有注册大漠插件这里进行自动注册
help.regdll("rc:dm.dll",true)
endif
//创建大漠对象
dm = com("dm.dmsoft")
endfunction
//点击暂停按钮事件
function button1_click()
//调用暂停热键功能
XATC.hotkey0_onhotkey()
endfunction
//暂停热键失去焦点事件
function hotkey0_killfocus()
hotkey.destroy("hotkey0")
hotkey.register("hotkey0")
endfunction
//暂停热键执行
function hotkey0_onhotkey()
//这里涉及到停止所有线程,需要一步一步添加
//关闭吃药线程
if(hpHandle!=0 && hpHandle!= null)
线程.关闭(hpHandle)
endif
endfunction
endnamespace
//空间结束
复制代码
作者:
jianqiumy
时间:
2013-9-8 20:49
回复
6楼
wwwlovea
的帖子
把
dm
设置全局变量
当然你要是传参的话,可局部变量
作者:
wwwlovea
时间:
2013-9-8 21:41
回复
7楼
jianqiumy
的帖子
我那个DM是全局变量啊
作者:
jianqiumy
时间:
2013-9-8 22:09
回复
8楼
wwwlovea
的帖子
那你做个判断是否注册成功?
收费的还是免费的?运行的时候看看插件版本,看得到就注册成功了
作者:
wwwlovea
时间:
2013-9-8 22:13
回复
9楼
jianqiumy
的帖子
都是免费的呀
有时候连那个dm.delay都会出错
作者:
jianqiumy
时间:
2013-9-8 22:21
回复
10楼
wwwlovea
的帖子
你初始化的时候直接注册,再判断是否注册成功,查看一下版本~~
照你代码看来是没注册成功
作者:
wwwlovea
时间:
2013-9-9 12:26
回复
11楼
jianqiumy
的帖子
是个很诡异的问题,我已经在机器山注册了,今天又可以运行了,时有时无郁闷。
作者:
jianqiumy
时间:
2013-9-9 13:11
回复
12楼
wwwlovea
的帖子
不要判断是否注册了,
每启动一次就初始化注册一次试试
作者:
wwwlovea
时间:
2013-9-9 14:18
回复
13楼
jianqiumy
的帖子
问题很诡异,现在还好了,但是大漠里的
dm.delay(5000)
这个延迟功能怎么不好用呢,根本没有起到延时5秒的作用
作者:
jianqiumy
时间:
2013-9-9 18:12
回复
14楼
wwwlovea
的帖子
这个本来就不好用,用TC自带的就好了
作者:
freenoon
时间:
2016-8-1 01:03
dm.Delay()
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1