TC官方合作论坛
标题:
大漠TC5.4多开单停记事本例子源码
[打印本页]
作者:
大自然
时间:
2016-2-27 23:00
标题:
大漠TC5.4多开单停记事本例子源码
参考论坛里的例子改写为tc5.4,原为tc版本的.初学TC,可以运行.初学TC,或有错误,请高手指正.
变量 dm ,窗口句柄数组=数组(),dm数组=数组(),任务线程句柄=数组(),检测线程句柄=数组()
变量 窗口标题=数组(),是否重定义=真
变量 index=0
变量 dmpath,dllcallret
功能 TC_DM54多开_初始化()
//这里添加你要执行的代码
//免注册调用大漠
命令("regsvr32 dm.dll /u /s",false)
// dmpath = help.getrcpath("rc:dm.dll")
// dllcallret=dllcall(help.getrcpath("rc:DmReg.dll"),"int","SetDllPathA","char *",dmpath,"int",0)
// dm=com("dm.dmsoft")
dmpath = 获取资源路径("rc:dm.dll")
dllcallret=dllcall(获取资源路径("rc:DmReg.dll"),"int","SetDllPathA","char *",dmpath,"int",0)
dm=com("dm.dmsoft")
结束
//-------------------------------获取窗口句柄------------------------//
功能 my获取窗口句柄()
变量 子句柄,大小
变量 句柄,数组下标
句柄=dm.GetForegroundWindow() //获取置于前端的窗口句柄
//句柄=系统.枚举(句柄,3)
句柄=枚举窗口(句柄,3)
调试输出(句柄)
//字符串.分割(句柄,"|",子句柄)
字符串分割(句柄,"|",子句柄)
//数组空间.大小(子句柄,大小)
大小=数组大小(子句柄)
如果(大小>0)
调试输出(子句柄[0])
// 如果(类型.转整型(子句柄[0])>0)
如果(转整型(子句柄[0])>0)
// 句柄=类型.转整型(子句柄[0])
句柄=转整型(子句柄[0])
调试输出(句柄)
// 如果(是否重定义)
// //对数组进行重定义,个数是index
// 窗口句柄数组=数组空间.重定义(窗口句柄数组,真,index+1)
// dm数组=数组空间.重定义(dm数组,真,index+1)
// 任务线程句柄= 数组空间.重定义(任务线程句柄,真,index+1)
// 检测线程句柄= 数组空间.重定义(检测线程句柄,真,index+1)
// 窗口标题=数组空间.重定义(窗口标题,真,index+1)
// 结束
//x引入错误判断机制,判断当前获得的窗口句柄是否已经绑定了
//数组下标=数组空间.查找(窗口句柄数组,句柄)
数组下标=数组值查找(窗口句柄数组,句柄,1)//返回元素在数组中的位置;0为返回key
如果(数组下标==-1)
//说明没有绑定过
//窗口句柄数组[index]=句柄
数组追加元素(窗口句柄数组,句柄)//第3个参数为key,不传或为空,则把当前索引作为键值加入,
//默认为空,操作索引数组,写入key则操作关联数组;成功返回真,失败返回假
返回 句柄
否则
调试输出("[请不要重复运行脚本]")
返回 -1
结束
否则
返回 -1
结束
结束
结束
//-----------------------------主窗口绑定-----------------------//
功能 主窗口绑定(句柄)
变量 下标,长度
变量 任务线程句柄a,检测线程句柄a,dm_ret,dm_local
//下标=数组空间.查找(窗口句柄数组,句柄)
下标=数组值查找(窗口句柄数组,句柄)
调试输出("[主窗口绑定] 句柄"&句柄)
// dm数组[index]=com("dm.dmsoft")
//dm_local=com("dm.dmsoft")//出错
//数组追加元素(dm数组,dm_local,句柄)//数组追加元素(数组,值,下标="") //出错
数组追加元素(dm数组,插件("dm.dmsoft"),句柄)//数组追加元素(数组,值,下标="")
//向数组尾部添加一个值,如果key值存在就会返回假失败,不传key或者key为空,则把当前索引作为键值加入
//dm数组[index].SetPath(辅助.获取资源路径("rc:"))
dm数组[句柄].SetPath(获取资源路径("rc:"))
//dm数组[index].SetDict(0,"字库.txt")
//dm_ret=dm数组[index].BindWindow(句柄,"gdi","windows","windows",0)
dm_ret=dm数组[句柄].BindWindow(句柄,"gdi","windows","windows",0)
如果(dm_ret>0)
调试输出("主窗口绑定成功")
// 任务线程句柄[index]= 线程.开启("TC_DM54多开.任务线程",下标)
// 检测线程句柄[index]= 线程.开启("TC_DM54多开.检测线程",下标)
任务线程句柄a= 线程开启("任务线程",句柄)
检测线程句柄a= 线程开启("检测线程",句柄)
数组追加元素(任务线程句柄,任务线程句柄a,句柄)//数组追加元素(数组,值,下标="")
数组追加元素(检测线程句柄,检测线程句柄a,句柄)//数组追加元素(数组,值,下标="")
// index++
// 数组空间.大小(窗口句柄数组,长度)
// 如果(长度!=index)
// index=长度
// 结束
// 是否重定义=真
否则
调试输出("主窗口绑定失败")
退出()
结束
结束
//---------------------------------------任务线程---------------------------------------------------//
//功能 任务线程(下标)
功能 任务线程(句柄)
调试输出("任务线程" & 句柄)
循环(真)
//dm数组[下标].SendString2(窗口句柄数组[下标],"任务线程 第"&类型.转字符型(下标+1)&"个窗口 "&辅助.随机数(1,100)&"\r\n")
dm数组[句柄].SendString2(句柄,"任务线程 第"&转字符型(数组键查找(任务线程句柄,句柄)+1)&"个窗口 "&随机数(1,100)&"\r\n")
//dm数组[句柄].SendString2(句柄,"任务线程 第"&转字符型(数组键查找(任务线程句柄,句柄)+1)&"个窗口 "&随机数(1,100)&"\r\n")
等待(500)
结束
结束
//----------------------------------------检测线程-------------------------------------------------//
功能 检测线程(句柄)
循环(真)
//dm数组[下标].SendString2(窗口句柄数组[下标],"检测线程 第"&类型.转字符型(下标+1)&"个窗口 "&辅助.随机数(1,100)&"\r\n")
dm数组[句柄].SendString2(句柄,"检测线程 第"&转字符型(数组键查找(检测线程句柄,句柄)+1)&"个窗口 "&随机数(1,100)&"\r\n")
等待(800)
结束
结束
//-----------------------------------开启热键------------------------------------//
功能 热键_开启_热键()
//这里添加你要执行的代码
变量 hwnd
//hwnd=TC_DM54多开.获取窗口句柄()
hwnd = my获取窗口句柄()
如果(hwnd>0)
//TC_DM54多开.主窗口绑定(hwnd)
主窗口绑定(hwnd)
结束
结束
功能 删除数组指定内容(&数组名,下标)
数组名[下标]=""
结束
//----------------------------------------单停热键---------------------------------//
功能 热键_单停_热键()
//这里添加你要执行的代码
//先获取置于前端的窗口句柄
变量 子句柄,大小
变量 句柄
句柄 = dm.GetForegroundWindow() //获取置于前端的窗口句柄
//句柄=系统.枚举(句柄,3)
句柄=枚举窗口(句柄,3)
调试输出(句柄)
//字符串.分割(句柄,"|",子句柄)
字符串分割(句柄,"|",子句柄)
//数组空间.大小(子句柄,大小)
大小=数组大小(子句柄)
如果(大小>0)
//TC_DM54多开.单停(子句柄[0]) //调用下面的单停
单停(子句柄[0]) //调用下面的单停
结束
结束
//--------------------------------------------单停---------------------------------//
功能 单停(句柄)
变量 下标
//下标=数组空间.查找(窗口句柄数组,句柄)
下标=数组值查找(窗口句柄数组,句柄,1)
如果(下标!=-1)
//先关闭线程
// 线程.关闭(任务线程句柄[下标])
// 线程.关闭(检测线程句柄[下标])
线程关闭(任务线程句柄[句柄])
线程关闭(检测线程句柄[句柄])
//恢复原来的窗口标题
// dm数组[下标].SetWindowText(窗口标题[下标])
//dm数组[句柄].SetWindowText(窗口标题[句柄])
//解绑主窗口
// dm数组[下标].UnBindWindow()
dm数组[句柄].UnBindWindow()
//删除数组中的数据
// TC_DM54多开.删除数组指定内容(窗口句柄数组,下标)
// TC_DM54多开.删除数组指定内容(dm数组,下标)
// TC_DM54多开.删除数组指定内容(任务线程句柄,下标)
// TC_DM54多开.删除数组指定内容(检测线程句柄,下标)
数组指定位置删除(窗口句柄数组,下标)
数组指定键值删除(dm数组,句柄)
数组指定键值删除(任务线程句柄,句柄)
数组指定键值删除(检测线程句柄,句柄)
// index=下标
// 是否重定义=假
否则
调试输出("脚本未运行或游戏窗口未置于前端")
结束
结束
//---------------------------------停止热键-----------------------------//
功能 热键_停止_热键()
//这里添加你要执行的代码
变量 大小,i
//获取窗口句柄数组大小
//数组空间.大小(窗口句柄数组,大小)
大小=数组大小(窗口句柄数组)
如果(大小>0)
遍历(i=0;i<大小;i++)
// 如果(类型.转整型(窗口句柄数组[i])>0)
// 线程.关闭(任务线程句柄[i])
// 线程.关闭(检测线程句柄[i])
// dm数组[i].UnBindWindow()
// 结束
如果(转整型(窗口句柄数组[i])>0)
线程关闭(任务线程句柄[窗口句柄数组[i]])
线程关闭(检测线程句柄[窗口句柄数组[i]])
dm数组[窗口句柄数组[i]].UnBindWindow()
结束
结束
//清空所有的数组
// 数组空间.清空(窗口句柄数组)
// 数组空间.清空(任务线程句柄)
// 数组空间.清空(检测线程句柄)
// 数组空间.清空(dm数组)
数组清空(窗口句柄数组)
数组清空(任务线程句柄)
数组清空(检测线程句柄)
数组清空(dm数组)
// index=0
结束
结束
复制代码
作者:
good
时间:
2016-2-27 23:56
加油加油~~
顺便吐槽一句,大自然跟超自然有什么亲表关系么.......
作者:
jodon27
时间:
2016-3-2 08:51
学习一下!!
作者:
jodon27
时间:
2016-3-2 08:51
学习一下!!
作者:
jodon27
时间:
2016-3-2 08:51
学习一下!!
作者:
jodon27
时间:
2016-3-2 08:51
学习一下!!
作者:
jodon27
时间:
2016-3-2 08:51
学习一下!!
作者:
小六六
时间:
2016-5-12 10:11
好多\\,不能去掉么?
作者:
lml164
时间:
2016-5-27 10:55
这是5.4版tc?不要误导我们
作者:
aaa5201314
时间:
2017-2-2 20:48
tc5.0就没有数组重定义了吧
作者:
fjyyong
时间:
2017-2-14 09:34
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1