【问题标题】:How to emulate hyper key in Windows 10 using autohotkey如何使用 autohotkey 在 Windows 10 中模拟超级键
【发布时间】:2017-03-19 01:45:06
【问题描述】:

我正在将我的 mac 工作流程迁移到 Windows。我不能没有的一件事是超级键,它是Ctrl + Option + Shift + Cmd 的组合。我使用 Karabiner 应用程序将 Capslock 重新映射到此 Hyper 键。我听说AutohotkeyWindows 的Karabiner 替代品。你们能帮我在Windows中模拟这个功能吗?

我的理想结果是:

  • 完全停用Capslock,因为我很少使用它
  • 切换Capslock 将执行ESC
  • 按住Capslock 将执行Ctrl + Alt + Shift + Windows。例如Capslock + C 将是Ctrl+Alt+Shift+Windows+C

非常感谢!

以下是我对 ahk 脚本的尝试,但它根本不起作用:(

;-----------------------------------------
; hyper key for windows
;=========================================

; --------------------------------------------------------------
; notes
; --------------------------------------------------------------
; ! = alt
; ^ = ctrl
; + = shift
; # = lwin|rwin
;
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#UseHook
#InstallKeybdHook
#SingleInstance force

SendMode Input

;; deactivate capslock completely
SetCapslockState, AlwaysOff

;; remap capslock to hyper
Capslock::
SendInput {Blind}{Ctrl Down}{Alt Down}{Shift Down}{LWin Down}
return

Capslock up::
SendInput {Blind}{Ctrl Up}{Alt Up}{Shift Up}{LWin Up}
return

;; vim navigation with hyper
^!+#h:: SendInput {Blind}{Left}
^!+#h up:: SendInput {Blind}{Left Up}
^!+#l:: SendInput {Blind}{Right}
^!+#k:: SendInput {Blind}{Up}
^!+#j:: SendInput {Blind}{Down}

;; popular hotkeys with hyper
^!+#c::^c
^!+#v::^v

【问题讨论】:

  • 不是编程问题 - 试试Super User ?
  • @PaulR tks 将我指向该网站。尽管我认为 Autohotkey 脚本 也是一种编程语言,但我会发布同样的问题。
  • 我想这可能是一个编程问题,如果您尝试编写 Autohotkey 脚本但它不工作,在这种情况下,您将在此处发布不工作的脚本并寻求帮助修复它。但就目前而言,这个问题更像是一个一般的用户级问题,即“我如何用软件 Y 做 X ?”。
  • @PaulR 你是对的。当我阅读 Autohotkey 文档时,希望我可以通过 tmr 生成某事。我问这个问题是希望一些 Autohotkey 大师能给我一个快速的答案。
  • @babygau 你的问题太宽泛了。 SO 不是代码编写服务。提出您在代码中遇到的特定问题,我们可以帮助您解决该问题。

标签: windows autohotkey


【解决方案1】:

感谢任何试图帮助我的人,我自己想出了这个问题,并想分享它以防万一有人遇到这个问题。

#NoEnv ; recommended for performance and compatibility with future autohotkey releases.
#UseHook
#InstallKeybdHook
#SingleInstance force

SendMode Input

;; deactivate capslock completely
SetCapslockState, AlwaysOff

;; remap capslock to hyper
;; if capslock is toggled, remap it to esc

;; note: must use tidle prefix to fire hotkey once it is pressed
;; not until the hotkey is released
~Capslock::
    ;; must use downtemp to emulate hyper key, you cannot use down in this case 
    ;; according to https://autohotkey.com/docs/commands/Send.htm, downtemp is as same as down except for ctrl/alt/shift/win keys
    ;; in those cases, downtemp tells subsequent sends that the key is not permanently down, and may be 
    ;; released whenever a keystroke calls for it.
    ;; for example, Send {Ctrl Downtemp} followed later by Send {Left} would produce a normal {Left}
    ;; keystroke, not a Ctrl{Left} keystroke
    Send {Ctrl DownTemp}{Shift DownTemp}{Alt DownTemp}{LWin DownTemp}
    KeyWait, Capslock
    Send {Ctrl Up}{Shift Up}{Alt Up}{LWin Up}
    if (A_PriorKey = "Capslock") {
        Send {Esc}
    }
return

;; vim navigation with hyper
~Capslock & h:: Send {Left}
~Capslock & l:: Send {Right}
~Capslock & k:: Send {Up}
~Capslock & j:: Send {Down}

;; popular hotkeys with hyper
~Capslock & c:: Send ^{c}
~Capslock & v:: Send ^{v}

【讨论】:

  • 我在 Windows 上使用 Autohotkey 在 Capslock hyper 上找到的唯一答案。谢谢@babygau!!
  • 疯了。非常感谢!这需要更多的支持。 VIM 家伙也在这里,所以这是一个奖励。我使用相同的组合。
  • 另请参阅此内容以禁用超级密钥的 Office 启动:superuser.com/questions/1455857/…
【解决方案2】:

您可以在此处使用一名随员前往 Karabiner: https://github.com/Vonng/Capslock/blob/master/win/CapsLock.ahk

它映射了您在 Mac 上习惯使用的相同热键

;Summary:                                                             |
;o----------------------o---------------------------------------------o
;|CapsLock;             | {ESC}  Especially Convient for vim user     |
;|CaspLock + `          | {CapsLock}CapsLock Switcher as a Substituent|
;|CapsLock + hjklwb     | Vim-Style Cursor Mover                      |
;|CaspLock + uiop       | Convient Home/End PageUp/PageDn             |
;|CaspLock + nm,.       | Convient Delete Controller                  |
;|CapsLock + zxcvay     | Windows-Style Editor                        |
;|CapsLock + Direction  | Mouse Move                                  |
;|CapsLock + Enter      | Mouse Click                                 |
;|CaspLock + {F1}~{F6}  | Media Volume Controller                     |
;|CapsLock + qs         | Windows & Tags Control                      |
;|CapsLock + ;'[]       | Convient Key Mapping                        |
;|CaspLock + dfert      | Frequently Used Programs (Self Defined)     |
;|CaspLock + 123456     | Dev-Hotkey for Visual Studio (Self Defined) |
;|CapsLock + 67890-=    | Shifter as Shift                            |

要安装它,请从doc

  1. 右键单击您的桌面。
  2. 在菜单中找到“新建”。
  3. 点击“新建”菜单中的“AutoHotkey 脚本”。
  4. 给脚本一个新名称。它必须以 .ahk 扩展名结尾。例如:MyScript.ahk
  5. 在桌面上找到新创建的文件并右键单击它。
  6. 点击“编辑脚本”。
  7. 应该会弹出一个窗口,可能是记事本。如果是这样,那么成功!
  8. 保存文件。
  9. 双击桌面上的文件/图标运行它。打开记事本或(您可以输入的任何内容)并按CtrlJ
  10. 臀部臀部万岁!您的第一个脚本已完成。去买点零食,然后继续阅读本教程的其余部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多