Autohotkey 自动热键中的循环错误

Autohotkey 自动热键中的循环错误,autohotkey,Autohotkey,我试图每50毫秒生成一个脚本推送空间,但它只在我每次按键时才会这样做。我希望它不断循环。代码如下: Loop { ^p:: Send, {Space} Sleep, 50 return } 假设要通过Ctrl+p启动,只需将循环放入热键执行体中即可: ^p:: loop { Send, {Space} Sleep, 50 } return 注意:以返回结束热键是一种很好的编程风格,但请注意,永远不会到达此返回!(永无止境的循环) 要激活和停用空间发送,您可能需要使用以下命令:

我试图每50毫秒生成一个脚本推送空间,但它只在我每次按键时才会这样做。我希望它不断循环。代码如下:

Loop
{
^p::
Send, {Space}
Sleep, 50
return
}

假设要通过Ctrl+p启动,只需将
循环
放入热键执行体中即可:

^p::
loop {
    Send, {Space}
    Sleep, 50
}
return
注意:以
返回
结束热键是一种很好的编程风格,但请注意,永远不会到达此返回!(永无止境的循环)

要激活和停用空间发送,您可能需要使用以下命令:

我不知道为什么,但它不起作用。当我再次按下它时,什么也没发生,它继续按空格

因为它对我有用,我想应该怪你的cpu/ram。我在这里引述我对这个问题的回答:

在我看来,最有可能是自动热键错误,或者错误地发送了
{space}
s,因为您的RAM不能很好地处理繁重的程序

我能想到你可以尝试的事情:

  • 买一台更好的电脑

  • 使用(在脚本开始时),使脚本每毫秒睡眠20毫秒,从而减少cpu消耗。这可能会让AutoHotkey头脑清醒

  • 可能也有帮助

有时,按下的修改器(如
ctrl
alt
)会大幅降低窗口速度。至少在WindowsVista下是这样。例如,您可能想去掉
^
(Ctrl)并将此热键更改为普通的
p::
热键

如果您仍然没有选择,您可以尝试以下方法:

#persistent
active := false

^p::
    setTimer, sendSpace, 50
    hotKey, p, stopSendSpace, ON
return

sendSpace:
    send {space}
return

stopSendSpace:
    setTimer, sendSpace, OFF
    hotkey, p, stopSendSpace, OFF
return

这将与上面的行为类似(再次通过ctrl+p激活),但在p(无ctrl)的情况下会发生停用,而不会覆盖默认行为

谢谢它的工作!但现在我想知道如何用相同的键序列来阻止它。谢谢它似乎不起作用??到底是什么?我测试时没有遇到任何问题,我是个十足的傻瓜。嗯。。。你该怎么结束它?再次按CTRL+P或…?是,就像启动一样
#persistent
active := false

^p::
    setTimer, sendSpace, 50
    hotKey, p, stopSendSpace, ON
return

sendSpace:
    send {space}
return

stopSendSpace:
    setTimer, sendSpace, OFF
    hotkey, p, stopSendSpace, OFF
return