Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autohotkey 将Capslock映射到Esc和Capslock&;将C转换为自动热键中的函数_Autohotkey - Fatal编程技术网

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收到发送,从而使答案生效。谢谢你的帮助。