|
发表于 2015-7-30 08:11:20
|
显示全部楼层
- //代码以鼠标指向记事本为例.如要测试,请先把鼠标移动到记事本编辑区再按下热键
- //声明全局变量
- 变量 窗口句柄 = 数组() //保存窗口句柄的数组
- 变量 线程句柄 = 数组() //保存线程句柄的数组
- 变量 dm = 数组() //保存dm对象的数组
- //===================================启动热键===================================\\
- 功能 hotkey0_onhotkey() //启动热键
- 蜂鸣(800,120) //响一下表示热键有效
- 变量 句柄 = 获取句柄() //调用获取句柄功能 并返回句柄
- 如果(句柄 > 0) //判断句柄是否大于0
- 窗口绑定(句柄) //调用窗口绑定功能 同时把句柄这个参数传递过去
- 结束
- 结束
- //===================================单停热键===================================\\
- 功能 hotkey1_onhotkey() //单停热键
- 蜂鸣(800,120) //响一下表示热键有效
- 变量 句柄 = 窗口获取鼠标所在句柄()//鼠标指向获取窗口句柄
- 变量 索引 = 数组查找(窗口句柄,句柄) //调用数组查找功能 返回索引值
- 如果(索引 != -1) //判断句柄是否存在数组里 -1表示这个窗口当前没有脚本在运行 != -1表示这个窗口正在运行脚本
- dm[索引].UnBindWindow() //大漠窗口解绑
- 线程关闭(线程句柄[索引])//停止该窗口线程
- 窗口句柄[索引] = null //把该窗口句柄元素清空
- 线程句柄[索引] = null //把该线程句柄元素清空
- dm[索引] = null //把该大漠对象元素清空
- 否则
- 消息框("该窗口未执行脚本") //弹出消息框提示
- 结束
- 结束
- //===================================全停热键===================================\\
- 功能 hotkey2_onhotkey() //全挺热键
- 蜂鸣(800,120) //响一下表示热键有效
- 变量 大小 = 数组大小(窗口句柄) //获得数组的大小
- 遍历(变量 i = 0; i < 大小; i++) //有多少个窗口就执行多少遍
- dm[i].UnBindWindow() //大漠窗口解绑
- 线程关闭(线程句柄[i]) //关闭线程,结束脚本
- 结束
- 数组清空(窗口句柄) //清空窗口句柄数组
- 数组清空(线程句柄) //清空线程句柄数组
- 数组清空(dm) //清空大漠对象数组
- 结束
- //===================================获取窗口句柄===================================\\
- 功能 获取句柄()
- 变量 游戏窗口类名 = "Edit" //以记事本为例
- 变量 句柄 = 窗口获取鼠标所在句柄() //鼠标指向获取窗口句柄
- 如果(句柄 > 0)
- 如果(字符串查找(窗口获取类名(句柄),游戏窗口类名) != -1)//判断是否是记事本窗口 也可以通过标题来判断
- 如果(数组查找(窗口句柄,句柄) == -1)//判断窗口句柄是否重复 -1表示该窗口是新窗口
-
- 如果(数组查找(窗口句柄,null) == -1)//判断是否要添加新窗口元素 -1表示添加新元素
- 数组追加元素(窗口句柄,null) //执行窗口追加元素
- 结束
-
- //下面把得到的窗口句柄存放进数组里
- 变量 大小 = 数组大小(窗口句柄) //得到数组的大小
- 如果(大小 > 0)
- 遍历(变量 i = 0; i < 大小; i++) //有多少个数组元素就执行多少遍
- 如果(窗口句柄[i] == null)//判断数组里面有没有空位 有就把句柄存放里面
- 窗口句柄[i] = 句柄 //把句柄赋值给数组成员
- 返回 窗口句柄[i] //返回 窗口句柄[i]
- 结束
- 结束
- 结束
-
-
- 否则
- 消息框("请不要对该游戏窗口重复运行脚本","提示") //消息框提示
- 返回 -1
- 结束
-
- 否则
- 消息框("窗口不正确","提示") //消息框提示
- 返回 -1
- 结束
- 结束
-
- 结束
- //===================================主窗口绑定===================================\\
- 功能 窗口绑定(句柄)
- 变量 索引 = 数组查找(窗口句柄,句柄)//获取句柄在数组里的索引
- dm[索引] = 插件("dm.dmsoft") //创建大漠对象
-
- // dm[索引].SetShowErrorMsg(0) //设置是否弹出错误信息
-
- dm[索引].SetPath(获取资源路径("rc:"))//设置大漠资源路径
- dm[索引].SetDict(0,"test.txt")//设置大漠默认字库
-
- // dm[索引].SetDict(0,获取资源路径("rc:test.txt"))//设置大漠默认字库
- traceprint(获取资源路径("rc:test.txt"))
-
- var ret = dm[索引].BindWindow(句柄,"normal","normal","normal",0)//绑定窗口
- 如果(ret != 1)
- 调试输出("绑定窗口失败")
- 返回 -1
- 结束
- 调试输出("绑定窗口成功")
- 线程句柄[索引] = 线程开启("主程序",索引)//开启线程
- 结束
- //===================================主程序===================================\\
- 功能 主程序(索引)
- 循环(真)//死循环
- 窗口发送字符串(窗口句柄[索引],索引)
- 等待(500)
- 结束
- 结束
- //===================================数组查找===================================\\
- 功能 数组查找(名称,要查找的内容) //这是一个自己封装的函数,和4.0版本中的函数 数组空间.查找() 起到一样的作用.
- 变量 大小 = 数组大小(名称) //得到数组的大小
- 如果(大小 == 0) //判断这个数组是不是空的
- 返回 -1 //既然是个空数组 那么查找任何内容都是徒劳 所以是找不到的 返回 -1
- 否则
- // 变量 值,key
- 遍历(变量 i = 0; i < 大小; i++) //遍历所有的数组成员
- // 数组获取元素(名称,i,值,key)
- 如果(要查找的内容 == 名称[i]) //看看要查找的内容是不是和某个数组成员相等.相等就说明要查找的内容在数组里
- 返回 i //返回索引
- 结束
- 结束
- //这里是遍历完所有的数组成员后 还是没有相等的内容 就说明数组里面没有要查找的内容 返回-1
- 返回 -1
- 结束
- 结束
- //===================================热键0失去焦点事件===================================\\
- 功能 hotkey0_killfocus() //自定义热键0
- 热键销毁("hotkey0") //先销毁旧的热键0键码
- 热键注册("hotkey0") //再注册新的热键0键码
- 结束
- //===================================热键1失去焦点事件===================================\\
- 功能 hotkey1_killfocus() //自定义热键1
- 热键销毁("hotkey1") //先销毁旧的热键1键码
- 热键注册("hotkey1") //再注册新的热键1键码
- 结束
- //===================================热键2失去焦点事件===================================\\
- 功能 hotkey2_killfocus() //自定义热键2
- 热键销毁("hotkey2") //先销毁旧的热键2键码
- 热键注册("hotkey2") //再注册新的热键2键码
- 结束
复制代码 |
|