Autohotkey 将Capslock映射到Esc和Capslock&;将C转换为自动热键中的函数
我想通过以下方式配置自动热键:Autohotkey 将Capslock映射到Esc和Capslock&;将C转换为自动热键中的函数,autohotkey,Autohotkey,我想通过以下方式配置自动热键: Capslock::Esc Capslock & C:: Run, www.stackoverflow.com return 因此,如果我只按Capslock它就像我按Esc一样。另一方面,如果我同时按下Capslock和c,它将调用通过www.stackoverflow.com打开浏览器的函数 目前,当我在脚本中使用另一个函数时,重新映射似乎会中断。当我现在按下capslock键时,它会在短时间内切换,因此单凭按键实际上什么都不起作用。我没有得到我的
Capslock::Esc
Capslock & C::
Run, www.stackoverflow.com
return
因此,如果我只按Capslock
它就像我按Esc
一样。另一方面,如果我同时按下Capslock
和c
,它将调用通过www.stackoverflow.com
打开浏览器的函数
目前,当我在脚本中使用另一个函数时,重新映射似乎会中断。当我现在按下capslock键时,它会在短时间内切换,因此单凭按键实际上什么都不起作用。我没有得到我的Esc
另一方面,按下capslocks+A可激活capslock并生成真正的A
有没有一种简单的方法可以解决这个问题?请查看以下代码:
inProcess = 0
Capslock::
Gui, 93:+Owner ; prevent display of taskbar button
Gui, 93:Show, y-99999 NA, Enable nav-hotkeys
inProcess = 1
KeyWait, Capslock ; wait until the Capslock button is released
Gui, 93:Cancel
if (inProcess == 1){
Send, {Esc}
}
Return
#IfWinExist, Enable nav-hotkeys
*c::
Run, www.stackoverflow.com
inProcess = 0
return
#IfWinExist, ; end context-sensitive block
我修改了这里的答案:我在底部又添加了一行快捷方式,效果很好(F10::MsgBox试用)。也许问题在于你剩下的代码会引起一些麻烦?@cajmer:你确定你得到了一个真正的Esc吗?我添加了更多关于代码在我这方面的作用的信息。不,我的脚本中没有任何额外的行。你是对的,我没有得到正确的Esc。我更关注“其他功能”——我的坏习惯。无论如何,我已经提交了一个应该满足您需要的答案。我通过添加
inProcess=0
作为一个标志来防止Esc收到发送,从而使答案生效。谢谢你的帮助。