|
本帖最后由 进军易语言 于 2012-11-5 17:42 编辑
运行2分多钟程序就会自动关闭,求解决,是循环导致卡死么?求方法- .版本 2
- .支持库 dm
- .程序集 窗口程序集1, , , 解决辅助自动关闭问题
- .子程序 __启动窗口_创建完毕, , , 检查完毕,设置字库
- dm.创建 ()
- dm.SetPath (“c:\”)
- dm.SetDict (0, “xw.txt”)
- .子程序 _按钮1_被单击, , , 检查完毕,绑定窗口,DX模式前台辅助,进入开始找字
- .局部变量 是否成功, 整数型, , , 绑定后,启动找字线程。
- 窗口句柄 = dm.FindWindow (“QQ炫舞”, “QQ炫舞”)
- 标签1.标题 = “正在挂机中”
- .如果 (窗口句柄 ≠ 0)
- 是否成功 = dm.BindWindow (窗口句柄, “dx2”, “normal”, “normal”, 0) ' 这里的键盘绑定模式可以更改为WINDOWS,不好使
- .如果 (是否成功 = 1)
- 输出调试文本 (“《QQ炫舞》游戏已经打开,可以愉快游戏!”)
- dm.SetWindowState (窗口句柄, 8)
- 延时 (500)
- ' 线程_启动 (&开始找字, )
- 开始找字 ()
- .否则
- 输出调试文本 (“《QQ炫舞》游戏尚未打开,请先打开游戏!”)
- .如果结束
- .否则
- .如果结束
- .子程序 开始找字
- .局部变量 找到字1, 文本型
- .局部变量 找到字2, 文本型
- .局部变量 起始1, 整数型
- .局部变量 跳舞键, 文本型
- .' 判断循环首 (真)
- ' 延时 (100) ' 因为是死循环,为程序优化,一定要加些延时
- ' 找到字1 = dm.Ocr (275, 360, 535, 390, “006adb-0063d6”, 0.9)
- .' 如果 (取文本长度 (找到字1) > 0)
- ' 延时 (300) ' 如果这里不加延时,就会识别不全!
- ' 找到字2 = dm.Ocr (275, 360, 535, 390, “006adb-0063d6”, 0.9)
- .' 如果 (取文本长度 (找到字2) > 0)
- ' 输出调试文本 (“找到的字2------” + 找到字2)
- ' ' 调用按键()
- .否则
- .如果结束
- .否则
- .如果结束
- .' 判断循环尾 ()
- 找到字1 = dm.Ocr (275, 360, 535, 390, “006adb-0063d6”, 0.9)
- .如果 (取文本长度 (找到字1) > 0)
- 延时 (400) ' 如果这里不加延时,就会识别不全!400能到9个,每次加50
- 找到字2 = dm.Ocr (275, 360, 535, 390, “006adb-0063d6”, 0.9)
- .如果 (取文本长度 (找到字2) > 0)
- 输出调试文本 (“找到的字2------” + 找到字2)
- 起始1 = 1
- .计次循环首 (取文本长度 (找到字2) ÷ 2, )
- 延时 (50)
- 跳舞键 = 取文本中间 (找到字2, 起始1, 2)
- 输出调试文本 (跳舞键)
- .判断开始 (跳舞键 = “上”)
- dm.KeyPress (38)
- .默认
- .判断结束
- .判断开始 (跳舞键 = “下”)
- dm.KeyPress (40)
- .默认
- .判断结束
- .判断开始 (跳舞键 = “左”)
- dm.KeyPress (37)
- .默认
- .判断结束
- .判断开始 (跳舞键 = “右”)
- dm.KeyPress (39)
- .默认
- .判断结束
- 起始1 = 起始1 + 2
- .计次循环尾 ()
- 开始按键 ()
- .否则
- .如果结束
- .否则
- 开始找字 () ' 这里继续查找检查没有问题,通过!
- .如果结束
- .子程序 开始按键
- .局部变量 跳舞键, 文本型
- .局部变量 qiu, 文本型
- .局部变量 qiu2, 文本型, , "1"
- .局部变量 qx, 整数型
- .局部变量 qy, 整数型
- .判断循环首 (真)
- 延时 (50)
- qiu = dm.FindPicE (480, 336, 498, 349, “c:\qiu.bmp”, “000000”, 0.9, 0)
- qiu2 = 分割文本 (qiu, “|”, )
- qx = 到整数 (qiu2 [2])
- qy = 到整数 (qiu2 [3])
- .如果 (qx ≥ 0 且 qy ≥ 0)
- ' 输出调试文本 (到文本 (qx) + “----” + 到文本 (qy))
- 延时 (220) ' 按空格时间可控
- dm.KeyPress (32)
- 输出调试文本 (“按空格了”)
- 跳出循环 ()
- .否则
- .如果结束
- .判断循环尾 ()
- 开始找字 ()
- .子程序 预留程序
- .子程序 __启动窗口_将被销毁
- dm.UnBindWindow ()
- .子程序 _按钮2_被单击
- dm.UnBindWindow ()
复制代码 |
求助知识:请将问题描述清楚,最好把你有问题的源码打包上传上来,这样更方便大家帮助你。 友情提醒:本版被采纳的主题可在 申请荣誉值 帖子申请荣誉值,获得 3点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
|