变量 全局_线程ID = 0
变量 全局_dm
变量 全局_操作窗口数组=数组()
变量 全局_大漠对象数组=数组()
变量 全局_Config
//从这里开始执行
//**********************************示例信息*****************************
//日 期:2015年9月21日
//作 者:梦飞飞
//示例说明:大漠枚举法结合鼠标指向窗口获取句柄实现多线程多窗口操作,通用模板
//1 设置启动窗口数 默认值:3
//2 F8快捷键启动脚本
//3 鼠标指向窗口 按键:pgup 暂停对准的窗口 按键:pgdn 恢复暂停的窗口
//***********************************************************************
功能 执行()
//从这里开始你的代码
文件删除(全局_Config) //删除线程配置文件
变量 编辑框_窗口数=编辑框获取文本("编辑框_窗口数")
如果(编辑框_窗口数=="")
消息框("请设置启动窗口数")
返回 假
结束
遍历(变量 i = 0; i < 编辑框_窗口数; i++)
命令(获取资源路径("rc:梦飞飞精品教程多线程多窗口操作枚举法.txt"),真)
等待(500)
结束
等待(1000)
//1.枚举 需要操作的窗口
变量 局部_窗口串 = 全局_dm.EnumWindow(0,"梦飞飞精品教程多线程多窗口操作枚举法.txt - ","",1+4+8+16)
调试输出(局部_窗口串)
如果(局部_窗口串=="")
返回 假
结束
//2.分割窗口准备操作
变量 局部_窗口数组
变量 局部_窗口数组len
变量 局部_操作窗口句柄
局部_窗口数组len=字符串分割(局部_窗口串,",",局部_窗口数组)//窗口数组定义为全局的后面用到时需要操作
遍历(变量 i = 0; i < 局部_窗口数组len; i++)
//排版
变量 局部_设置窗口宽带=300
全局_dm.SetWindowSize(局部_窗口数组[i],局部_设置窗口宽带,400)
全局_dm.MoveWindow(局部_窗口数组[i],i*局部_设置窗口宽带,0)
//找到 要操作的子窗口
局部_操作窗口句柄 = 全局_dm.FindWindowEx(局部_窗口数组[i],"Edit","")//通过类名查找到要操作的子窗口
调试输出("局部_操作窗口句柄:"&局部_操作窗口句柄)
如果(局部_操作窗口句柄>0)
数组增加元素(全局_操作窗口数组,局部_操作窗口句柄,null)//把当前操作窗口 添加到数组方便后面暂停与恢复操作
变量 局部_线程ID=线程开启("操作窗口",局部_操作窗口句柄)
文件写配置(局部_操作窗口句柄,"局部_线程ID",局部_线程ID,全局_Config)
文件写配置(局部_操作窗口句柄,"是否暂停",假,全局_Config)//初始化暂停与恢复标记
结束
结束
// 消息框("这个是热键执行的代码")
结束
功能 操作窗口(参数_操作窗口)
变量 dm=com("dm.dmsoft")
数组增加元素(全局_大漠对象数组,dm,null)
循环(真)
dm.SendString(参数_操作窗口,参数_操作窗口&":梦飞飞精品教程\r") //向对应的窗口 输出信息并输出当前操作窗口句柄
等待(1000)
结束
结束
//启动_热键操作
功能 启动_热键()
如果(全局_线程ID == 0)
全局_线程ID=线程开启("执行","")
否则
消息框("脚本正在执行中,请先停止再启动.")
结束
结束
//终止热键操作
功能 终止_热键()
如果(全局_线程ID != 0)
线程关闭(全局_线程ID)
全局_线程ID = 0
结束
结束
功能 启动_失去焦点()
//这里添加你要执行的代码
热键销毁("启动")
热键注册("启动")
结束
功能 终止_失去焦点()
//这里添加你要执行的代码
热键销毁("终止")
热键注册("终止")
结束
功能 保存配置_点击()
//这里添加你要执行的代码
变量 键值 = 0,功能键 = 0
热键获取键码("启动",键值,功能键)
文件写配置("热键","启动键值",键值,"D:\\Main.ini")
文件写配置("热键","启动功能键",功能键,"D:\\Main.ini")
热键获取键码("终止",键值,功能键)
文件写配置("热键","终止键值",键值,"D:\\Main.ini")
文件写配置("热键","终止功能键",功能键,"D:\\Main.ini")
结束
功能 枚举法多开单停_初始化()
//这里添加你要执行的代码
全局_Config=系统获取进程路径()&"Config.ini"
变量 键值 = 0,功能键 = 0
键值 = 文件读配置("热键","启动键值","D:\\Main.ini")
功能键 = 文件读配置("热键","启动功能键","D:\\Main.ini")
如果(键值 != "")
热键设置键码("启动",键值,功能键)
热键注册("启动")
结束
键值 = 文件读配置("热键","终止键值","D:\\Main.ini")
功能键 = 文件读配置("热键","终止功能键","D:\\Main.ini")
如果(键值 != "")
热键设置键码("终止",键值,功能键)
热键注册("终止")
结束
变量 提示内容 = "梦飞飞精品教程.多线程多窗口操作(枚举法示例TC5.4版本) "
标签设置文本("标签2",提示内容)
如果(智能注册大漠插件()==假)
返回 假
结束
全局_dm=com("dm.dmsoft")
调试输出("当前大漠版本:"&全局_dm.Ver())
结束
//自动判断注册插件
功能 智能注册大漠插件()
//1.判断插件是否注册
变量 ret=是否注册("dm.dmsoft")
如果(ret)
调试输出("插件已注册")
返回 真
结束
调试输出("插件注册")
//2.未注册 开始注册插件
ret=注册插件(获取资源路径("rc:dm.dll"),真)
如果(ret)
调试输出("插件注册成功")
返回 真
结束
消息框("插件注册失败")
退出()
返回 假
结束
功能 枚举法多开单停_销毁()
//这里添加你要执行的代码
//卸载 大漠插件
注册插件(获取资源路径("rc:dm.dll"),假)
结束
功能 热键0_热键()
//这里添加你要执行的代码
线程暂停恢复操作("暂停")
结束
功能 热键1_热键()
//这里添加你要执行的代码
线程暂停恢复操作("恢复")
结束
功能 线程暂停恢复操作(参数_操作类型)
变量 局部_鼠标指向窗口句柄 = 全局_dm.GetMousePointWindow()
变量 局部_操作窗口数组len = 数组大小(全局_操作窗口数组)
遍历(变量 i = 0; i < 局部_操作窗口数组len; i++)
如果(局部_鼠标指向窗口句柄==全局_操作窗口数组[i])
//线程暂停与恢复操作
变量 是否暂停=文件读配置(全局_操作窗口数组[i],"是否暂停",全局_Config)//读取暂停恢复标记
如果(参数_操作类型=="暂停" && 是否暂停==真)
调试输出("已暂停操作")
返回 假
结束
如果(参数_操作类型=="恢复" && 是否暂停==假)
调试输出("已恢复操作")
返回 假
结束
变量 局部_线程ID=文件读配置(全局_操作窗口数组[i],"局部_线程ID",全局_Config)//读取暂停恢复标记
如果(局部_线程ID=="")
返回 假
结束
如果(参数_操作类型=="暂停")
线程暂停(局部_线程ID)
//大漠锁定于解锁操作
//全局_大漠对象数组[i].LockInput(0) //关闭 当前对象锁定
文件写配置(全局_操作窗口数组[i],"是否暂停",真,全局_Config)//改变标记的值
返回 真
结束
如果(参数_操作类型=="恢复")
线程恢复(局部_线程ID)
//大漠锁定于解锁操作
//全局_大漠对象数组[i].LockInput(1)//开启 当前对象锁定
文件写配置(全局_操作窗口数组[i],"是否暂停",假,全局_Config)//改变标记的值
返回 真
结束
返回 假
结束
结束
结束
变量 全局_dm
变量 全局_操作窗口数组=数组()
变量 全局_大漠对象数组=数组()
变量 全局_Config
//从这里开始执行
//**********************************示例信息*****************************
//日 期:2015年9月21日
//作 者:梦飞飞
//示例说明:大漠枚举法结合鼠标指向窗口获取句柄实现多线程多窗口操作,通用模板
//1 设置启动窗口数 默认值:3
//2 F8快捷键启动脚本
//3 鼠标指向窗口 按键:pgup 暂停对准的窗口 按键:pgdn 恢复暂停的窗口
//***********************************************************************
功能 执行()
//从这里开始你的代码
文件删除(全局_Config) //删除线程配置文件
变量 编辑框_窗口数=编辑框获取文本("编辑框_窗口数")
如果(编辑框_窗口数=="")
消息框("请设置启动窗口数")
返回 假
结束
遍历(变量 i = 0; i < 编辑框_窗口数; i++)
命令(获取资源路径("rc:梦飞飞精品教程多线程多窗口操作枚举法.txt"),真)
等待(500)
结束
等待(1000)
//1.枚举 需要操作的窗口
变量 局部_窗口串 = 全局_dm.EnumWindow(0,"梦飞飞精品教程多线程多窗口操作枚举法.txt - ","",1+4+8+16)
调试输出(局部_窗口串)
如果(局部_窗口串=="")
返回 假
结束
//2.分割窗口准备操作
变量 局部_窗口数组
变量 局部_窗口数组len
变量 局部_操作窗口句柄
局部_窗口数组len=字符串分割(局部_窗口串,",",局部_窗口数组)//窗口数组定义为全局的后面用到时需要操作
遍历(变量 i = 0; i < 局部_窗口数组len; i++)
//排版
变量 局部_设置窗口宽带=300
全局_dm.SetWindowSize(局部_窗口数组[i],局部_设置窗口宽带,400)
全局_dm.MoveWindow(局部_窗口数组[i],i*局部_设置窗口宽带,0)
//找到 要操作的子窗口
局部_操作窗口句柄 = 全局_dm.FindWindowEx(局部_窗口数组[i],"Edit","")//通过类名查找到要操作的子窗口
调试输出("局部_操作窗口句柄:"&局部_操作窗口句柄)
如果(局部_操作窗口句柄>0)
数组增加元素(全局_操作窗口数组,局部_操作窗口句柄,null)//把当前操作窗口 添加到数组方便后面暂停与恢复操作
变量 局部_线程ID=线程开启("操作窗口",局部_操作窗口句柄)
文件写配置(局部_操作窗口句柄,"局部_线程ID",局部_线程ID,全局_Config)
文件写配置(局部_操作窗口句柄,"是否暂停",假,全局_Config)//初始化暂停与恢复标记
结束
结束
// 消息框("这个是热键执行的代码")
结束
功能 操作窗口(参数_操作窗口)
变量 dm=com("dm.dmsoft")
数组增加元素(全局_大漠对象数组,dm,null)
循环(真)
dm.SendString(参数_操作窗口,参数_操作窗口&":梦飞飞精品教程\r") //向对应的窗口 输出信息并输出当前操作窗口句柄
等待(1000)
结束
结束
//启动_热键操作
功能 启动_热键()
如果(全局_线程ID == 0)
全局_线程ID=线程开启("执行","")
否则
消息框("脚本正在执行中,请先停止再启动.")
结束
结束
//终止热键操作
功能 终止_热键()
如果(全局_线程ID != 0)
线程关闭(全局_线程ID)
全局_线程ID = 0
结束
结束
功能 启动_失去焦点()
//这里添加你要执行的代码
热键销毁("启动")
热键注册("启动")
结束
功能 终止_失去焦点()
//这里添加你要执行的代码
热键销毁("终止")
热键注册("终止")
结束
功能 保存配置_点击()
//这里添加你要执行的代码
变量 键值 = 0,功能键 = 0
热键获取键码("启动",键值,功能键)
文件写配置("热键","启动键值",键值,"D:\\Main.ini")
文件写配置("热键","启动功能键",功能键,"D:\\Main.ini")
热键获取键码("终止",键值,功能键)
文件写配置("热键","终止键值",键值,"D:\\Main.ini")
文件写配置("热键","终止功能键",功能键,"D:\\Main.ini")
结束
功能 枚举法多开单停_初始化()
//这里添加你要执行的代码
全局_Config=系统获取进程路径()&"Config.ini"
变量 键值 = 0,功能键 = 0
键值 = 文件读配置("热键","启动键值","D:\\Main.ini")
功能键 = 文件读配置("热键","启动功能键","D:\\Main.ini")
如果(键值 != "")
热键设置键码("启动",键值,功能键)
热键注册("启动")
结束
键值 = 文件读配置("热键","终止键值","D:\\Main.ini")
功能键 = 文件读配置("热键","终止功能键","D:\\Main.ini")
如果(键值 != "")
热键设置键码("终止",键值,功能键)
热键注册("终止")
结束
变量 提示内容 = "梦飞飞精品教程.多线程多窗口操作(枚举法示例TC5.4版本) "
标签设置文本("标签2",提示内容)
如果(智能注册大漠插件()==假)
返回 假
结束
全局_dm=com("dm.dmsoft")
调试输出("当前大漠版本:"&全局_dm.Ver())
结束
//自动判断注册插件
功能 智能注册大漠插件()
//1.判断插件是否注册
变量 ret=是否注册("dm.dmsoft")
如果(ret)
调试输出("插件已注册")
返回 真
结束
调试输出("插件注册")
//2.未注册 开始注册插件
ret=注册插件(获取资源路径("rc:dm.dll"),真)
如果(ret)
调试输出("插件注册成功")
返回 真
结束
消息框("插件注册失败")
退出()
返回 假
结束
功能 枚举法多开单停_销毁()
//这里添加你要执行的代码
//卸载 大漠插件
注册插件(获取资源路径("rc:dm.dll"),假)
结束
功能 热键0_热键()
//这里添加你要执行的代码
线程暂停恢复操作("暂停")
结束
功能 热键1_热键()
//这里添加你要执行的代码
线程暂停恢复操作("恢复")
结束
功能 线程暂停恢复操作(参数_操作类型)
变量 局部_鼠标指向窗口句柄 = 全局_dm.GetMousePointWindow()
变量 局部_操作窗口数组len = 数组大小(全局_操作窗口数组)
遍历(变量 i = 0; i < 局部_操作窗口数组len; i++)
如果(局部_鼠标指向窗口句柄==全局_操作窗口数组[i])
//线程暂停与恢复操作
变量 是否暂停=文件读配置(全局_操作窗口数组[i],"是否暂停",全局_Config)//读取暂停恢复标记
如果(参数_操作类型=="暂停" && 是否暂停==真)
调试输出("已暂停操作")
返回 假
结束
如果(参数_操作类型=="恢复" && 是否暂停==假)
调试输出("已恢复操作")
返回 假
结束
变量 局部_线程ID=文件读配置(全局_操作窗口数组[i],"局部_线程ID",全局_Config)//读取暂停恢复标记
如果(局部_线程ID=="")
返回 假
结束
如果(参数_操作类型=="暂停")
线程暂停(局部_线程ID)
//大漠锁定于解锁操作
//全局_大漠对象数组[i].LockInput(0) //关闭 当前对象锁定
文件写配置(全局_操作窗口数组[i],"是否暂停",真,全局_Config)//改变标记的值
返回 真
结束
如果(参数_操作类型=="恢复")
线程恢复(局部_线程ID)
//大漠锁定于解锁操作
//全局_大漠对象数组[i].LockInput(1)//开启 当前对象锁定
文件写配置(全局_操作窗口数组[i],"是否暂停",假,全局_Config)//改变标记的值
返回 真
结束
返回 假
结束
结束
结束