TC官方合作论坛

 找回密码
 立即注册
查看: 2165|回复: 10

[TC5.0源码] 大漠TC5.4多开单停记事本例子源码

[复制链接]
发表于 2016-2-27 23:00:59 | 显示全部楼层 |阅读模式

马上加入TC

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

x
参考论坛里的例子改写为tc5.4,原为tc版本的.初学TC,可以运行.初学TC,或有错误,请高手指正.

  1. 变量 dm ,窗口句柄数组=数组(),dm数组=数组(),任务线程句柄=数组(),检测线程句柄=数组()
  2. 变量 窗口标题=数组(),是否重定义=真
  3. 变量 index=0

  4. 变量 dmpath,dllcallret


  5. 功能 TC_DM54多开_初始化()
  6.     //这里添加你要执行的代码
  7.     //免注册调用大漠
  8.     命令("regsvr32 dm.dll /u /s",false)
  9. //    dmpath = help.getrcpath("rc:dm.dll")
  10. //    dllcallret=dllcall(help.getrcpath("rc:DmReg.dll"),"int","SetDllPathA","char *",dmpath,"int",0)
  11. //    dm=com("dm.dmsoft")
  12.    
  13.   
  14.     dmpath = 获取资源路径("rc:dm.dll")
  15.     dllcallret=dllcall(获取资源路径("rc:DmReg.dll"),"int","SetDllPathA","char *",dmpath,"int",0)
  16.     dm=com("dm.dmsoft")
  17. 结束





  18. //-------------------------------获取窗口句柄------------------------//
  19. 功能 my获取窗口句柄()
  20.     变量 子句柄,大小
  21.     变量 句柄,数组下标
  22.     句柄=dm.GetForegroundWindow() //获取置于前端的窗口句柄
  23.     //句柄=系统.枚举(句柄,3)
  24.     句柄=枚举窗口(句柄,3)
  25.     调试输出(句柄)
  26.     //字符串.分割(句柄,"|",子句柄)
  27.     字符串分割(句柄,"|",子句柄)
  28.     //数组空间.大小(子句柄,大小)
  29.     大小=数组大小(子句柄)
  30.    
  31.     如果(大小>0)
  32.         调试输出(子句柄[0])
  33. //        如果(类型.转整型(子句柄[0])>0)
  34.         如果(转整型(子句柄[0])>0)
  35. //            句柄=类型.转整型(子句柄[0])
  36.                         句柄=转整型(子句柄[0])            
  37.             调试输出(句柄)
  38.             
  39. //            如果(是否重定义)
  40. //                //对数组进行重定义,个数是index
  41. //                窗口句柄数组=数组空间.重定义(窗口句柄数组,真,index+1)
  42. //                dm数组=数组空间.重定义(dm数组,真,index+1)
  43. //                任务线程句柄= 数组空间.重定义(任务线程句柄,真,index+1)
  44. //                检测线程句柄= 数组空间.重定义(检测线程句柄,真,index+1)
  45. //                窗口标题=数组空间.重定义(窗口标题,真,index+1)
  46. //            结束        
  47.             
  48.             //x引入错误判断机制,判断当前获得的窗口句柄是否已经绑定了
  49.             //数组下标=数组空间.查找(窗口句柄数组,句柄)
  50.             数组下标=数组值查找(窗口句柄数组,句柄,1)//返回元素在数组中的位置;0为返回key
  51.             如果(数组下标==-1)
  52.                 //说明没有绑定过
  53.                 //窗口句柄数组[index]=句柄
  54.                 数组追加元素(窗口句柄数组,句柄)//第3个参数为key,不传或为空,则把当前索引作为键值加入,
  55.                 //默认为空,操作索引数组,写入key则操作关联数组;成功返回真,失败返回假
  56.                 返回 句柄
  57.             否则
  58.                 调试输出("[请不要重复运行脚本]")
  59.                 返回 -1
  60.             结束
  61.         否则
  62.             返回 -1
  63.         结束
  64.     结束
  65. 结束
  66. //-----------------------------主窗口绑定-----------------------//
  67. 功能 主窗口绑定(句柄)
  68.     变量 下标,长度
  69.     变量 任务线程句柄a,检测线程句柄a,dm_ret,dm_local
  70.     //下标=数组空间.查找(窗口句柄数组,句柄)
  71.     下标=数组值查找(窗口句柄数组,句柄)
  72.     调试输出("[主窗口绑定] 句柄"&句柄)
  73. //    dm数组[index]=com("dm.dmsoft")
  74.         //dm_local=com("dm.dmsoft")//出错
  75.     //数组追加元素(dm数组,dm_local,句柄)//数组追加元素(数组,值,下标="") //出错
  76.         数组追加元素(dm数组,插件("dm.dmsoft"),句柄)//数组追加元素(数组,值,下标="")   
  77.     //向数组尾部添加一个值,如果key值存在就会返回假失败,不传key或者key为空,则把当前索引作为键值加入
  78.    
  79.     //dm数组[index].SetPath(辅助.获取资源路径("rc:"))
  80.     dm数组[句柄].SetPath(获取资源路径("rc:"))
  81.     //dm数组[index].SetDict(0,"字库.txt")
  82.     //dm_ret=dm数组[index].BindWindow(句柄,"gdi","windows","windows",0)
  83.     dm_ret=dm数组[句柄].BindWindow(句柄,"gdi","windows","windows",0)
  84.     如果(dm_ret>0)
  85.         调试输出("主窗口绑定成功")
  86. //        任务线程句柄[index]= 线程.开启("TC_DM54多开.任务线程",下标)
  87. //        检测线程句柄[index]= 线程.开启("TC_DM54多开.检测线程",下标)
  88.         任务线程句柄a= 线程开启("任务线程",句柄)
  89.         检测线程句柄a= 线程开启("检测线程",句柄)
  90.         
  91.         数组追加元素(任务线程句柄,任务线程句柄a,句柄)//数组追加元素(数组,值,下标="")   
  92.         数组追加元素(检测线程句柄,检测线程句柄a,句柄)//数组追加元素(数组,值,下标="")   
  93.         
  94.         
  95. //        index++
  96. //        数组空间.大小(窗口句柄数组,长度)
  97. //        如果(长度!=index)
  98. //            index=长度
  99. //        结束
  100. //        是否重定义=真
  101.     否则
  102.         调试输出("主窗口绑定失败")
  103.         退出()
  104.     结束   
  105. 结束





  106. //---------------------------------------任务线程---------------------------------------------------//
  107. //功能 任务线程(下标)
  108. 功能 任务线程(句柄)
  109.     调试输出("任务线程" & 句柄)
  110.     循环(真)
  111.         //dm数组[下标].SendString2(窗口句柄数组[下标],"任务线程   第"&类型.转字符型(下标+1)&"个窗口   "&辅助.随机数(1,100)&"\r\n")
  112.         dm数组[句柄].SendString2(句柄,"任务线程   第"&转字符型(数组键查找(任务线程句柄,句柄)+1)&"个窗口   "&随机数(1,100)&"\r\n")
  113.         //dm数组[句柄].SendString2(句柄,"任务线程   第"&转字符型(数组键查找(任务线程句柄,句柄)+1)&"个窗口   "&随机数(1,100)&"\r\n")
  114.         等待(500)
  115.     结束
  116. 结束
  117. //----------------------------------------检测线程-------------------------------------------------//
  118. 功能 检测线程(句柄)
  119.     循环(真)
  120.         //dm数组[下标].SendString2(窗口句柄数组[下标],"检测线程   第"&类型.转字符型(下标+1)&"个窗口   "&辅助.随机数(1,100)&"\r\n")
  121.         dm数组[句柄].SendString2(句柄,"检测线程   第"&转字符型(数组键查找(检测线程句柄,句柄)+1)&"个窗口   "&随机数(1,100)&"\r\n")
  122.         等待(800)
  123.     结束
  124. 结束





  125. //-----------------------------------开启热键------------------------------------//
  126. 功能 热键_开启_热键()
  127.     //这里添加你要执行的代码
  128.     变量 hwnd
  129.     //hwnd=TC_DM54多开.获取窗口句柄()
  130.     hwnd = my获取窗口句柄()
  131.     如果(hwnd>0)
  132.         //TC_DM54多开.主窗口绑定(hwnd)
  133.         主窗口绑定(hwnd)
  134.     结束
  135. 结束

  136. 功能 删除数组指定内容(&数组名,下标)
  137.     数组名[下标]=""   
  138. 结束



  139. //----------------------------------------单停热键---------------------------------//
  140. 功能 热键_单停_热键()
  141.     //这里添加你要执行的代码
  142.     //先获取置于前端的窗口句柄
  143.     变量 子句柄,大小
  144.     变量 句柄
  145.     句柄 = dm.GetForegroundWindow() //获取置于前端的窗口句柄
  146.     //句柄=系统.枚举(句柄,3)
  147.     句柄=枚举窗口(句柄,3)
  148.     调试输出(句柄)
  149.     //字符串.分割(句柄,"|",子句柄)
  150.     字符串分割(句柄,"|",子句柄)
  151.     //数组空间.大小(子句柄,大小)
  152.     大小=数组大小(子句柄)
  153.     如果(大小>0)
  154.         //TC_DM54多开.单停(子句柄[0])    //调用下面的单停   
  155.         单停(子句柄[0])    //调用下面的单停   
  156.     结束
  157. 结束

  158. //--------------------------------------------单停---------------------------------//
  159. 功能 单停(句柄)
  160.     变量 下标
  161.     //下标=数组空间.查找(窗口句柄数组,句柄)
  162.     下标=数组值查找(窗口句柄数组,句柄,1)
  163.    
  164.     如果(下标!=-1)
  165.         //先关闭线程
  166. //        线程.关闭(任务线程句柄[下标])
  167. //        线程.关闭(检测线程句柄[下标])
  168.         线程关闭(任务线程句柄[句柄])
  169.         线程关闭(检测线程句柄[句柄])        
  170.         
  171.         //恢复原来的窗口标题
  172. //        dm数组[下标].SetWindowText(窗口标题[下标])
  173.         //dm数组[句柄].SetWindowText(窗口标题[句柄])
  174.         //解绑主窗口        
  175. //        dm数组[下标].UnBindWindow()
  176.         dm数组[句柄].UnBindWindow()  
  177.         
  178.         //删除数组中的数据
  179. //        TC_DM54多开.删除数组指定内容(窗口句柄数组,下标)
  180. //        TC_DM54多开.删除数组指定内容(dm数组,下标)
  181. //        TC_DM54多开.删除数组指定内容(任务线程句柄,下标)
  182. //        TC_DM54多开.删除数组指定内容(检测线程句柄,下标)  
  183.         
  184.         数组指定位置删除(窗口句柄数组,下标)
  185.         数组指定键值删除(dm数组,句柄)
  186.         数组指定键值删除(任务线程句柄,句柄)
  187.         数组指定键值删除(检测线程句柄,句柄)
  188.         
  189. //        index=下标
  190. //        是否重定义=假
  191.     否则
  192.         调试输出("脚本未运行或游戏窗口未置于前端")
  193.     结束   
  194. 结束

  195. //---------------------------------停止热键-----------------------------//
  196. 功能 热键_停止_热键()
  197.     //这里添加你要执行的代码
  198.     变量 大小,i
  199.     //获取窗口句柄数组大小
  200.     //数组空间.大小(窗口句柄数组,大小)
  201.     大小=数组大小(窗口句柄数组)
  202.     如果(大小>0)
  203.         遍历(i=0;i<大小;i++)
  204. //            如果(类型.转整型(窗口句柄数组[i])>0)
  205. //                线程.关闭(任务线程句柄[i])
  206. //                线程.关闭(检测线程句柄[i])
  207. //                dm数组[i].UnBindWindow()
  208. //            结束
  209.             如果(转整型(窗口句柄数组[i])>0)
  210.                 线程关闭(任务线程句柄[窗口句柄数组[i]])
  211.                 线程关闭(检测线程句柄[窗口句柄数组[i]])
  212.                 dm数组[窗口句柄数组[i]].UnBindWindow()
  213.             结束
  214.             
  215.         结束
  216.         
  217.         
  218.         //清空所有的数组
  219. //        数组空间.清空(窗口句柄数组)
  220. //        数组空间.清空(任务线程句柄)
  221. //        数组空间.清空(检测线程句柄)
  222. //        数组空间.清空(dm数组)
  223.         
  224.         数组清空(窗口句柄数组)
  225.         数组清空(任务线程句柄)
  226.         数组清空(检测线程句柄)
  227.         数组清空(dm数组)
  228.         
  229.         
  230. //        index=0
  231.     结束
  232. 结束
复制代码


回复

使用道具 举报

发表于 2016-2-27 23:56:48 | 显示全部楼层
加油加油~~
顺便吐槽一句,大自然跟超自然有什么亲表关系么.......
回复 支持 反对

使用道具 举报

发表于 2016-3-2 08:51:16 | 显示全部楼层
学习一下!!
回复

使用道具 举报

发表于 2016-3-2 08:51:19 | 显示全部楼层
学习一下!!
回复

使用道具 举报

发表于 2016-3-2 08:51:22 | 显示全部楼层
学习一下!!
回复

使用道具 举报

发表于 2016-3-2 08:51:26 | 显示全部楼层
学习一下!!
回复

使用道具 举报

发表于 2016-3-2 08:51:28 | 显示全部楼层
学习一下!!
回复

使用道具 举报

发表于 2016-5-12 10:11:03 | 显示全部楼层
好多\\,不能去掉么?
回复 支持 反对

使用道具 举报

发表于 2016-5-27 10:55:36 来自手机 | 显示全部楼层
这是5.4版tc?不要误导我们
回复 支持 反对

使用道具 举报

发表于 2017-2-2 20:48:26 | 显示全部楼层
tc5.0就没有数组重定义了吧
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-5-19 22:16 , Processed in 0.044849 second(s), 22 queries .

Powered by 海安简单软件服务部

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

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