TC官方合作论坛

标题: 寻求测试 [打印本页]

作者: hualaosi    时间: 2014-2-14 00:27
标题: 寻求测试
本帖最后由 hualaosi 于 2014-2-14 00:28 编辑

我想封装一个脚本,用鼠标滚轮来把脚本关闭,但是要把这个脚本再次运行时,却要按热键0二次才能实现,如果是直接使用热键1来停止脚本,只需要按一次热键0就能开启。寻求解决办法。。。。源码:
  1. 空间 热键控制

  2. 变量 线程句柄=0,键盘码,键
  3. 功能 主控()
  4. 热键控制.鼠标代码()
  5. 功能结束
  6. 功能 鼠标代码()
  7. 热键.获得("热键1",键盘码,键)
  8. 循环(真)
  9. 鼠标代码=鼠标.等待点击()
  10. 如果(鼠标代码==1000)
  11. 编辑框.设置文本("编辑框0",编辑框.获得文本("编辑框0")&">行动成功\r\n")
  12. 否则
  13. 如果(鼠标代码==1009)
  14. 跳出
  15. 如果结束
  16. 如果结束
  17. 循环结束
  18. 键盘.按键(键盘码)
  19. 功能结束
  20. 功能 热键0_热键()
  21. 如果(线程句柄==0)
  22. 线程句柄=线程.开启("热键控制.主控","")
  23. 如果结束
  24. 功能结束
  25. 功能 热键1_热键()
  26. 如果(线程句柄!=0)
  27. 线程.关闭(线程句柄)
  28. 线程句柄=0
  29. 如果结束
  30. 功能结束
  31. 空间结束
复制代码


作者: 小西    时间: 2014-2-14 14:10
如果(鼠标代码==1009)
跳出
如果结束

这里的结束线程,只是用跳出循环.循环跳出,线程的确结束 ,但是 线程句柄 还是有数值的.
而开启的热键里面,是有判断线程句柄是否为0,只有当为0时,才能开启.
所以在跳出前加一个 线程句柄=0
比较你的 热键1 代码,会发现里面有一个 线程句柄归零语句.

就上面一段代码来说,如果用鼠标滚轮来结束了线程,
理论上,不管你按多少次 热键0 都是不可以再次启动的.
除非你在按了 热键0 之后,又按过 热键1
作者: hualaosi    时间: 2014-2-15 17:39
本帖最后由 hualaosi 于 2014-2-15 17:51 编辑
小西 发表于 2014-2-14 14:10
如果(鼠标代码==1009)
跳出
如果结束


超版新年好~非常感谢你的仔细分析和回复~~
经过按照你的分析和建议,我重新更新和测试了代码,发现:
如果在跳出前加 线程句柄=0,那在热键1就得去掉如果的语句,直接关闭线程,可是情况并没有改变。还是不能如意的控制线程的开启。

重新说一下代码的问题,就是如果滚轮只滚一下,所有的操作都正常,也就是说只要按一下热键0就能再启动脚本,但是,如果是滚轮下滚二次以上,那就得按二下热键0才能实现再启动脚本。

这里说的滚轮滚动多少下的意思不是说滚一下后等一会再滚,是说把中间的轮子连续的滚几格,如果只滚一格,不出问题,滚二格以上就有问题了。

这脚本,从来也不出现你所说的按多少次热键0也不再启动的情况,最多就二次热键0,脚本就能再启动。实际上,我用鼠标下滚来结束进程,并不是单单的结束循环,而是在结束循环后,后面还有一个语句,是调用热键1
键盘.按键(键盘码)

脚本的测试中,发现一个问题,就是鼠标滚动多格后,可能是有多个代码=1009的情况存在,所以我在测试中在第14行后加了这样的代码

鼠标代码=null

但是,一样没有办法解决问题。烦人呀,希望版主再辛苦一点,找找原因。

作者: hualaosi    时间: 2014-2-15 18:14
本帖最后由 hualaosi 于 2014-2-15 18:15 编辑

为了能找到原因,我把开始按钮添加了代码
  1. 功能 开始_点击()
  2.     按钮名称=按钮.获得文本("开始")
  3.     选择(按钮名称)
  4.         条件 "开始":
  5.         线程句柄=线程.开启("热键控制.主控","")
  6.         按钮.设置文本("开始","结束")
  7.         条件 "结束":
  8.         线程.关闭(线程句柄)
  9.         线程.关闭句柄(线程句柄)
  10.         线程句柄=0
  11.         按钮.设置文本("开始","开始")
  12.     选择结束
  13.    
  14. 功能结束
复制代码

并在热键1 添加
  1. 按钮.设置文本("开始","开始")
复制代码

测试:点开始按钮,开始按钮变成“结束”,下滚一次后,开始的按钮变成“开始”,再点开始按钮,脚本正常运行,按钮也变成了“结束”
但是,如果是鼠标滚动二格以上,按钮一样变由“结束” 变 “开始”,但是再点这按钮的时候,按钮文本连续的由“开始” 变 “结束” 再变 “开始”,这里就说明一个问题,之前鼠标滚动的时候还有一个  “鼠标代码=1009” 在内存里没有释放,用什么代码把这个内存里的代码清除或释放掉呢?
作者: 小西    时间: 2014-2-15 22:04
hualaosi 发表于 2014-2-15 17:39
超版新年好~非常感谢你的仔细分析和回复~~
经过按照你的分析和建议,我重新更新和测试了代码,发现:
如 ...

将代码搬至TC编辑器里,重新看了一次.
的确,前面将 跳出之后的 按键 忽略掉了
这里纠正一下.代码没有缺陷性问题.
现在的问题的确如楼主所说应该是 鼠标.等待 的问题.
具体情况,稍后联系软件开发人员来进行解决.
作者: hualaosi    时间: 2014-2-16 00:22
小西 发表于 2014-2-15 22:04
将代码搬至TC编辑器里,重新看了一次.
的确,前面将 跳出之后的 按键 忽略掉了
这里纠正一下.代码没有缺陷 ...

非常感谢超版的关注,祝小西超版马年好运!!!!
作者: tcgaoshou    时间: 2014-5-12 14:00
这个问题解决了吗?




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1