是否有办法在 Windows 7 中仅在 Cygwin 中使用 AutoHotKey 将 Caps Lock 重新映射到 Ctrl?我可以使用以下脚本对所有程序执行此操作:
Capslock::Control
但是如何才能让按键重映射仅影响 Cygwin?
以下是我目前所看到的内容:
仅适用于 Emacs 的脚本(来自http://www.emacswiki.org/emacs/MovingTheCtrlKey#toc16):
#IfWinActive emacs ; if in emacs
+Capslock::Capslock ; make shift+Caps-Lock the Caps Lock toggle
Capslock::Control ; make Caps Lock the control button
#IfWinActive ; end if in emacs
对我来说不起作用,因为 Cygwin64 的标题只显示 ~
我也尝试过这个:
#If WinActive("ahk_class ConsoleWindowClass"); or WinActive("ahk_class cygwin/x") or WinActive("ahk_class mintty"); if in Cygwin
+Capslock::Capslock ; make shift+Caps-Lock the Caps Lock toggle
Capslock::Control ; make Caps Lock the control button
#IfWinActive ; end if in Cygwin
还是没用。
如果我使用以下脚本,我确实可以使其仅适用于 Cygwin:
#IfWinActive ~ ; if in Cygwin
+Capslock::Capslock ; make shift+Caps-Lock the Caps Lock toggle
Capslock::Control ; make Caps Lock the control button
#IfWinActive ; end if in Cygwin
但这有时会导致 Chrome 出现一些缩放问题。
任何帮助将不胜感激。
(注意:我无法使用注册密钥解决方案重新映射密钥,我没有管理员权限)。
答案1
如果你向“WinTitle”参数添加更多信息,会怎么样?ahk_exe 命令像这样:
#IfWinActive ~ ahk_exe cmd.exe
这应该可以防止 capslock 干扰 Chrome
需要 AutoHotkey 版本http://ahkscript.org/正如所介绍的ahk_exe作为有效参数 - 参见http://ahkscript.org/docs/misc/WinTitle.htm#ahk_exe