怎么让这个宏立刻停止?

问答中心分类: 问题怎么让这个宏立刻停止?
没谁了 用户 提问于 9月 以前

 #maxThreadsPerHotkey, 2    
v_Enable=0 
$f1::  ;按一下开,再按一下关
{         v_Enable:=!v_Enable       
     while (v_Enable=1){                                
    send {1 down}                 
    sleep 5000
    send {1 up}                
    send {2 down}                     
    sleep 5000               
    send {2 up}               
   }       
    if(v_Enable==0){                               
           send {1 up}               
           send {2 up}       
    }
}
例如,这个宏启动5秒后我停止,但它会把后边的5秒也按完才能真正的停止.我用pause是可以实现,但用pause的话,它下次重新开宏的时候不是从头开始,而是续上之前没做完的循环,有知道的吗

2 个回答
最佳回答
没谁了 回答于 9月 以前
  1. 意思是sleep期间 是没有操作的 只是等着是吧 并没有把按下的键一直按着?
我爱学编程我爱学编程 用户 回复于 9月 以前

至于有没有一直按下要试下才知道,我也没有测试过,但是肯定的是程序并不会向下执行了

没谁了 用户 回复于 9月 以前

send {1 down}
SetTimer, MoveUp, 5000
MoveUp:
send {1 up}
Return
我这么写了 应该是1按着5秒 还是只按了一次 是哪不对吗

没谁了 用户 回复于 9月 以前

send {1 down}
SetTimer, MoveUp, 5000
MoveUp:
send {1 up}
Return
我这么写了 应该是1按着5秒 还是只按了一次 是哪不对吗

没谁了 用户 回复于 9月 以前

send {1 down}
SetTimer, MoveUp, 5000
MoveUp:
send {1 up}
Return
我这么写了 应该是1按着5秒 还是只按了一次 是哪不对吗

我爱学编程我爱学编程 用户 回答于 9月 以前

因为你是用的sleep,而不是定时器,sleep期间,是不会继续想下执行其他的语句的。改成定时器,在定时器里面判断就好了

打赏作者