TC官方合作论坛

 找回密码
 立即注册
查看: 1941|回复: 3

[问题] 大神帮忙。。程序只会执行一次

[复制链接]
发表于 2020-12-9 14:10:19 | 显示全部楼层 |阅读模式

马上加入TC

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

x
变量 线程ID
   
    变量 x=-1,y=-1
    变量 x1=-1,y1=-1

功能 执行()
   
    循环(真)
   
    变量 ret=找图(0,0,2000,2000,"rc:可抛竿.bmp","050505",1.0,0,x,y)
    如果(ret>=0)
        
     鼠标移动(x,y)
     等待(800)
     鼠标左键单击(2)
     等待(2000)
     
     
   
    循环(真)
   
     变量 ret1=找色(0,0,2000,2000,"A6CDFF","050505",1.0,x1,y1)
   
    如果(ret1>=0)
   
      鼠标移动(1124,907)
        
     鼠标左键单击(2)
     等待(2000)
     
     
     
//   
     结束
     结束
     结束
     结束
   


结束
//启动_热键操作
功能 启动_热键()
    线程ID=线程开启("执行","")
结束

//终止热键操作
功能 终止_热键()
    线程关闭(线程ID)
结束
   
结束

       在测试中,只能执行一次程序。如何循环执行功能中的代码啊、、?  万分感谢
回复

使用道具 举报

发表于 2020-12-9 16:00:48 | 显示全部楼层
功能 执行()
   
    循环(真)
   
    变量 ret=找图(0,0,2000,2000,"rc:可抛竿.bmp","050505",1.0,0,x,y)
    如果(ret>=0)
        
     鼠标移动(x,y)
     等待(800)
     鼠标左键单击(2)
     等待(2000)
     
     
   
    循环(真)
   
     变量 ret1=找色(0,0,2000,2000,"A6CDFF","050505",1.0,x1,y1)
   
    如果(ret1>=0)
   
      鼠标移动(1124,907)
        
     鼠标左键单击(2)
     等待(2000)
跳出\\跳出第2个死循环,回到第1个死循环
     
     
     
//   
     结束
     结束
     结束
     结束
   


结束
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-9 21:51:14 | 显示全部楼层
cjxdn 发表于 2020-12-9 16:00
功能 执行()
   
    循环(真)

这个跳出还是不会用,。。但还是感谢你
回复 支持 反对

使用道具 举报

发表于 2020-12-10 09:28:35 | 显示全部楼层
本帖最后由 bestkakkoii 于 2020-12-10 09:32 编辑

不知道你准备做什么所以不知道怎么写才是你想要的效果
这边用了两种跳出方法不过其实没必要只是硬塞进去而已

一种是条件式循环没有满足条件就停止循环

另一种是条件式跳出达成条件就直接跳出
另外加了一个条件式启动线程避免按太多次重覆启动线程

  1. 变量 线程ID
  2. 变量 线程ID2
  3. 变量 stopthread1
  4. 变量 stopthread2
  5. 变量 x = -1, y = -1
  6. 变量 x1 = -1, y1 = -1
  7. 功能 执行()
  8.     循环(stopthread1 == 1)
  9.         变量 ret = 找图(0, 0, 2000, 2000, "rc:可抛竿.bmp", "050505", 1.0, 0, x, y)
  10.         如果(ret >= 0)
  11.             鼠标移动(x, y)
  12.             等待(200)
  13.             鼠标左键单击(2)
  14.             等待(1500)
  15.             如果(线程获取状态(线程ID2) == 1)
  16.                 线程ID2 = 线程开启("执行2", "")
  17.             结束
  18.         结束
  19.         如果(stopthread1 == 0)
  20.             跳出
  21.         结束
  22.         等待(200)
  23.     结束
  24. 结束
  25. //
  26. 功能 执行2()
  27.     循环(stopthread2 == 1)
  28.         变量 ret1 = 找色(0, 0, 2000, 2000, "A6CDFF", "050505", 1.0, x1, y1)
  29.         如果(ret1 >= 0)
  30.             鼠标移动(1124, 907)
  31.             等待(200)
  32.             鼠标左键单击(2)
  33.             等待(1500)  
  34.         结束
  35.         如果(stopthread2 == 0)
  36.             跳出
  37.         结束
  38.         等待(200)
  39.     结束
  40. 结束
  41. //
  42. //启动_热键操作
  43. 功能 启动_Hotkey()
  44.     如果(线程获取状态(线程ID) == 0)
  45.         stopthread1 = 1
  46.         stopthread2 = 1
  47.         线程ID = 线程开启("执行", "")
  48.     结束
  49. 结束
  50. //终止热键操作
  51. 功能 终止_Hotkey()
  52.     stopthread1 = 0
  53.     stopthread2 = 0
  54.     线程关闭(线程ID)
  55. 结束
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-4-26 07:09 , Processed in 0.038105 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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