TC官方合作论坛

 找回密码
 立即注册
查看: 826|回复: 6
打印 上一主题 下一主题

[脚本] 寻求测试

[复制链接]
跳转到指定楼层
楼主
发表于 2014-2-14 00:27:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 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:51 | 只看该作者
如果(鼠标代码==1009)
跳出
如果结束

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

就上面一段代码来说,如果用鼠标滚轮来结束了线程,
理论上,不管你按多少次 热键0 都是不可以再次启动的.
除非你在按了 热键0 之后,又按过 热键1
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-2-15 17:39:33 | 只看该作者
本帖最后由 hualaosi 于 2014-2-15 17:51 编辑
小西 发表于 2014-2-14 14:10
如果(鼠标代码==1009)
跳出
如果结束


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

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

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

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

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

鼠标代码=null

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

使用道具 举报

地板
 楼主| 发表于 2014-2-15 18:14:01 | 只看该作者
本帖最后由 hualaosi 于 2014-2-15 18:15 编辑

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

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

测试:点开始按钮,开始按钮变成“结束”,下滚一次后,开始的按钮变成“开始”,再点开始按钮,脚本正常运行,按钮也变成了“结束”
但是,如果是鼠标滚动二格以上,按钮一样变由“结束” 变 “开始”,但是再点这按钮的时候,按钮文本连续的由“开始” 变 “结束” 再变 “开始”,这里就说明一个问题,之前鼠标滚动的时候还有一个  “鼠标代码=1009” 在内存里没有释放,用什么代码把这个内存里的代码清除或释放掉呢?
回复 支持 反对

使用道具 举报

5#
发表于 2014-2-15 22:04:34 | 只看该作者
hualaosi 发表于 2014-2-15 17:39
超版新年好~非常感谢你的仔细分析和回复~~
经过按照你的分析和建议,我重新更新和测试了代码,发现:
如 ...

将代码搬至TC编辑器里,重新看了一次.
的确,前面将 跳出之后的 按键 忽略掉了
这里纠正一下.代码没有缺陷性问题.
现在的问题的确如楼主所说应该是 鼠标.等待 的问题.
具体情况,稍后联系软件开发人员来进行解决.
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2014-2-16 00:22:55 | 只看该作者
小西 发表于 2014-2-15 22:04
将代码搬至TC编辑器里,重新看了一次.
的确,前面将 跳出之后的 按键 忽略掉了
这里纠正一下.代码没有缺陷 ...

非常感谢超版的关注,祝小西超版马年好运!!!!
回复 支持 反对

使用道具 举报

7#
发表于 2014-5-12 14:00:51 | 只看该作者
这个问题解决了吗?
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-27 07:38 , Processed in 0.141501 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表