TC官方合作论坛

 找回密码
 立即注册
查看: 11806|回复: 15

多线程,大漠对象及窗口绑定问题

[复制链接]
发表于 2013-9-8 14:20:33 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
第一多线程的开启后扩展开启到底有什么区别,使用的时候具体用哪个呢?
第二在多线程中大漠对象的创建,我现在使用的是TC4.0以后的版本,大漠对需要在每个线程中都创建一次吗,我做过测试好像只在外面创建一个大漠对象就可以了,但是不知道具体原因,所以有次疑问。大漠窗口的绑定需要在每个线程中都绑定(操作同一个窗口非多开)吗?
回复

使用道具 举报

发表于 2013-9-8 15:54:54 | 显示全部楼层
第一:以我理解,没什么大分别,
这里"我的程序"是空间名",线程方法"是执行函数; "销毁操作"也是执行函数,"参数"有就传,没有就留空""
线程.扩展开启("我的程序.线程方法","我是参数A","我的程序.销毁操作","我是参数B")
扩展开启线程,就是执行"线程方法"后,直接执行销毁操作结束线程(也就是调用另一个函数结束这个线程)
.销毁操作;里面是一个函数(自定义执行动作)

线程.开启("我的程序.线程方法","我是参数")
线程.开启(也可以做到,代码都是自己写的,想怎么样就怎么样写)
用那一个看自己需要吧,都可以()

4.0后~~一个对象对应一个窗口(不管这个窗口有多少条线程)--只需要绑定一次
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-8 19:22:10 | 显示全部楼层
回复 2楼jianqiumy的帖子

十分感谢你的回答!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-8 19:25:24 | 显示全部楼层
回复 2楼jianqiumy的帖子

我想问一下TC在使用大漠多线程的时候既然一个对象对应一个窗口,只需要绑定一次,那么这个绑定操作是不是就可以在线程外面写了,不用写进线程内部,同样解绑也是写在线程外对吗??
回复 支持 反对

使用道具 举报

发表于 2013-9-8 19:38:12 | 显示全部楼层
回复 4楼wwwlovea的帖子

与线程无关的~~~
你不用线程也行~~不过会把你卡得一B一B的,
多开的话还建议还是用线程,论坛里有很多事例~~参考一下别人的~~理解了怎么用都行
你要是用插件绑定,要后台或者前台,离不开线程的~~~方方面面都靠线程来控制~~

例如:你绑定窗口一,窗口二,那你如何用来控制那个是窗口一那个是窗口二呢?

比如你一个游戏你要暂停都要通过线程来控制的,TC就是线程好用~~
对啊,
解绑一样,但是你要是多窗口,对应下标就行了

反正论坛里有很多事例~~自己多看~~看看基础也是要的


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-8 20:39:33 | 显示全部楼层
回复 5楼jianqiumy的帖子



我用的TC4.0以后的版本,在运行中使用了大漠插件,但是这个是出现这个问题怎么办呢.
  1. namespace XATC
  2. //全局变量
  3. 变量 gamehadle,dm,hpHandle
  4. 变量 hptext

  5. //开始按钮_点击操作
  6. function start_click()

  7. //如果没有获得游戏窗口句柄就提示并跳转到结束
  8. if(gamehadle==0 || gamehadle==null)
  9. 辅助.消息框("请先获得游戏窗口再启动!")
  10. goto sign1
  11. endif

  12. //激活游戏窗口
  13. dm.SetWindowState(gamehadle,1)
  14. //绑定游戏窗口
  15. isbind = dm.BindWindow(gamehadle,"dx","dx","dx",0)
  16. dm.delay(50)

  17. //检测大漠工具绑定游戏窗口是否成功,
  18. if(isbind==0)
  19. statictext.settext("tishi","大漠插件绑定游戏窗口失败!")
  20. goto sign1
  21. endif

  22. //自身窗口最小化
  23. //window.setwindowmin(window.getmyhwnd())

  24. hptext = edit.gettext("edit0")

  25. sign1:

  26. endfunction

  27. //加血函数
  28. function addhp()
  29. while(true)
  30. start = 461 //加血起点坐标
  31. end = 676 //加血终点坐标
  32. leng = end - start
  33. addx = start + leng * hptext /100 //加血X坐标

  34. //dm.MoveTo(addx,799)
  35. //dm.delay(5000)
  36. dm.MoveTo(1386,539)
  37. dm.delay(50)
  38. dm.LeftClick()
  39. //变量 intX,intY
  40. ////大漠区域着色
  41. //dm.FindColor(addx,799,676,809,"2c2b27-090c0e",0.9,0,intX,intY)
  42. ////如果在加血坐标点到终点找到黑色就加血(按F1)
  43. //if(intX >= 0 && intY >= 0)
  44. //dm.KeyPress(112)
  45. //endif

  46. endwhile
  47. endfunction
  48. //退出按钮_点击操作
  49. function exit_click()
  50. //调用暂停热键关闭所有线程
  51. XATC.hotkey0_onhotkey()

  52. //解除绑定窗口
  53. if(dm.IsBind(gamehadle))
  54. dm.UnBindWindow()
  55. endif

  56. help.exit()
  57. endfunction


  58. //获得游戏窗口按钮点击事件
  59. function button0_click()
  60. help.confirmationbox("点击确定后鼠标移动到游戏窗口停留5秒获得游戏窗口","获得游戏窗口",1,真)
  61. help.sleep(3000)
  62. string message
  63. gamehadle=window.getmousemovewndhand()
  64. statictext.setcolor("tishi",#ff0000)//设置提示标签字体红色

  65. if(gamehadle!=0)
  66. message=window.getwindowcaption(gamehadle)
  67. statictext.settext("tishi",message)
  68. else
  69. statictext.settext("tishi","未获得窗口")
  70. endif
  71. endfunction

  72. //界面初始化
  73. function init()
  74. //设置最小化的时候隐藏到托盘
  75. help.settray("my_tray",false)

  76. //检测是否注册大漠插件
  77. isreg = help.isregister("dm.dmsoft")
  78. if(!isreg)
  79. //如果没有注册大漠插件这里进行自动注册
  80. help.regdll("rc:dm.dll",true)
  81. endif

  82. //创建大漠对象
  83. dm = com("dm.dmsoft")
  84. endfunction

  85. //点击暂停按钮事件
  86. function button1_click()
  87. //调用暂停热键功能
  88. XATC.hotkey0_onhotkey()
  89. endfunction

  90. //暂停热键失去焦点事件
  91. function hotkey0_killfocus()
  92. hotkey.destroy("hotkey0")
  93. hotkey.register("hotkey0")
  94. endfunction

  95. //暂停热键执行
  96. function hotkey0_onhotkey()
  97. //这里涉及到停止所有线程,需要一步一步添加
  98. //关闭吃药线程
  99. if(hpHandle!=0 && hpHandle!= null)
  100. 线程.关闭(hpHandle)
  101. endif

  102. endfunction

  103. endnamespace
  104. //空间结束
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2013-9-8 20:49:42 | 显示全部楼层
回复 6楼wwwlovea的帖子

dm 设置全局变量
当然你要是传参的话,可局部变量
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-8 21:41:12 | 显示全部楼层
回复 7楼jianqiumy的帖子

我那个DM是全局变量啊
回复 支持 反对

使用道具 举报

发表于 2013-9-8 22:09:09 | 显示全部楼层
回复 8楼wwwlovea的帖子

那你做个判断是否注册成功?
收费的还是免费的?运行的时候看看插件版本,看得到就注册成功了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-8 22:13:35 | 显示全部楼层
回复 9楼jianqiumy的帖子

都是免费的呀
有时候连那个dm.delay都会出错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-6 21:24 , Processed in 0.040596 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表