SendInput 无法高速工作

SendInput won't work at high speed

我做了一个快捷方式说 "alt j" 向左箭头,像这样:

!j::SendInput,{LEFT}

这很好用,除非我按住 "alt j" 的时间太长。它在大多数时间都可以正常工作,但偶尔会在我前进的路径周围掉落 "j"s。说 i Wanna go one letter at a time,通过这句话:

"Hello world"

它很可能会变成这样:

"jHeljjlo jworljd"

有没有办法在每次击键时设置一个微小的延迟以使其能够跟上?或者这个问题是否与必须设置的默认延迟有关?

感谢您的帮助!

所以这对您来说仍然是个问题? 在我看来,最有可能是 AutoHotkey 错误,或者错误地发送了 js 因为你的 RAM 不能很好地处理繁重的程序。

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

  • 买一台更好的电脑。

  • 使用 setBatchLines, 1ms,使您的脚本每毫秒休眠 20 毫秒,因此消耗更少 cpu。这可能会清除 AutoHotkey 的想法。

  • SetKeyDelay, 50 也可能有帮助。

有时,按下 ctrlalt 等修饰符会大大减慢 windows 的速度。至少在 Windows Vista 下是这样。所以你可能想去掉 ! (alt) 而坚持使用 j :下面的脚本被 !j 激活并且行为就像你的初始脚本一样,但也会保持运行一旦你松开ALT,只要按下J:

!j::
sendInput {left}
hotkey, *j, sendLeft, ON
hotkey, *j up, stopSendLeft, ON
return

sendLeft:
send {left}
return

stopSendLeft:
hotkey, *j, sendLeft, OFF
hotkey, *j up, stopSendLeft, OFF
return

不过,我并不抱太大希望能对您有所帮助。