为了结束我的自定义键盘映射以进行编码,我在脚本底部放置了以下行:
Esc::ExitApp
然而,由于其他原因,单次击键(特别是Esc)发生的太多。因此,我更喜欢一系列单键击(不按住任何键)退出Autohotkey映射,例如“Esc然后LCtrl”或“Esc,LCtrl然后再次Esc”
我从AutoHotKey key SEQUENCE, not just single-key hotkey尝试了这个想法:
Esc::
Input Key, L1
if Key=LCtrl
ExitApp
return
但它似乎没有诀窍:按Esc然后按下LCtrl,映射不会停止。 (另外,如果我按下Esc然后按下另一个键(不是LCtrl),则忽略下一次击键,我最好没有。
答案 0 :(得分:0)
版本1a:
LCtrl & Esc::
ExitApp
return
您可以在脚本中的任何位置添加此代码。按 LCtrl 并在 Esc 之后退出脚本。
版本1b:
Esc & LCtrl::
ExitApp
return
您可以在脚本中的任何位置添加此代码。按 Esc 并在 LCtrl 之后退出脚本。
您可以添加版本1a 和版本1b 。在这种情况下,按 LCtrl 并在 Esc OR Esc 之后和 LCtrl 脚本将退出。
版本2 (它使用不同的方法,如果由于某种原因你不喜欢版本1a 或/和版本1b 强>)的:强>
Loop
{
a := GetKeyState("Esc")
if (a=1)
{
b := GetKeyState("LCtrl")
if (b=1)
{
ExitApp
}
}
}
在您的其他代码重新映射您需要的所有密钥后,应启动该代码。按 LCtrl 并在 Esc OR Esc 之后和 LCtrl 之后退出脚本。
修改强>
版本3 :
Loop
{
a := GetKeyState("Esc")
if (a=1)
{
Loop,60 ;number of 50 milliseconds script will wait to CTRL press. Example 60 means 60*50=3000, so script will wait 3000 milliseconds (1sec=1000 milliseconds) for CTRL press. After that time you have to press Esc again.
{
b := GetKeyState("LCtrl")
if (b=1)
{
ExitApp
}
Sleep, 50
}
}
}
在您的其他代码重新映射您需要的所有密钥后,应启动该代码。按 Esc (现在可以释放 Esc )并在3000毫秒(1秒= 1000毫秒)内按 LCtrl 。在此之后,您必须再次按 Esc 以退出脚本。如果您想要修改时间,之后需要按 Esc 再次阅读代码中的注释。
此外,始终使用来自http://ahkscript.org/的AutoHotkey及其文档(当前最新版本,新官方网站)! Autohotkey.com上的AutoHotkey及其文档已过时,使用它们可能会遇到一些问题!