【问题标题】:Capslock Shift Modifier大写锁定移位修饰符
【发布时间】:2016-04-05 17:35:38
【问题描述】:

我想要一个 AHK 脚本,它会禁用 Capslock,除非将箭头键用作 Home 和 End 的快捷方式(有和没有文本选择)。我相信它看起来像这样,但我不知道如何将 Shift 键包含为修饰符,因此我也可以选择文本。

Capslock::Return
Capslock & Right::End
Capslock & Left::Home
Capslock & Right & Shift::End (with Selection)
Capslock & Left & Shift::Home (with Selection)

【问题讨论】:

  • @etune,此页面包含您缺少的所有信息:autohotkey.com/docs/Hotkeys.htm 第一次使用自动热键的任何人都应该阅读它。
  • 我已通读文档。无法使用 Shift 修饰符。
  • 我可以像 !CapsLock::CapsLock 一样使用 alt 作为修饰符来使 alt-capslock 表现得像普通的 capslock。通过+CapsLock... 映射移位失败并显示消息Invalid hotkey。在不深入研究问题的情况下,我怀疑存在错误或重新映射大写锁定很棘手,并且 shift-capslock 不会让自己以这种方式处理。

标签: autohotkey


【解决方案1】:

这个 AutoHotkey 脚本应该做你想要实现的:

注意:在某些键盘上,很难甚至不可能将某些组合键用作热键,尤其是当有多个非修饰键时,例如CapsLock 和 Right 不是修饰符,而 Shift/Ctrl/Win/Alt 是。

注意:我无法让!CapsLock::CapsLock 工作。很久以前,经过大量的试验和错误,我找到了一些工作代码来为 CapsLock 分配不同的组合键,我将其包含在下面。

Capslock::Return

Capslock & Right::
if GetKeyState("Shift", "p")
SendInput +{End}
else
SendInput {End}
Return

Capslock & Left::
if GetKeyState("Shift", "p")
SendInput +{Home}
else
SendInput {Home}
Return

;!CapsLock::CapsLock

!CapsLock::
SetStoreCapslockMode, Off
SendInput {CapsLock}
SetStoreCapslockMode, On
Return

【讨论】:

    【解决方案2】:

    复制粘贴并尝试和恐惧许多不幸被遗忘的地方是我的解决方案。

    如您所见,我已将alt-Capslock 映射到普通Capslock
    Capslock 本身到 Esc
    按照相同的模式,我尝试使用 +CapsLock & h::Send {Backspace} 获取 shift-Capslockalt-Capslock,但 AHK 抱怨语法错误。
    您还可以看到; 恰好有一个特殊注释,那是因为我更改了键盘,该键有时是;,有时是ö

    #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn ; Enable warnings to assist with detecting common errors.
    SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
    
    SetCapsLockState AlwaysOff
    
    ; Toggle Capslock with alt-Capslock.
    !CapsLock::CapsLock
    
    ; Esc.
    CapsLock::Send {Esc}
    
    ; Arrows.
    CapsLock & j::Send {Left}
    CapsLock & k::Send {Right}
    CapsLock & SC027::Send {Down} ; or CapsLock & `;::Send {Down}
    CapsLock & l::Send {Up}
    CapsLock & u::Send ^{Left}
    CapsLock & i::Send ^{Right}
    
    ; Backspace and Del.
    CapsLock & h::Send {Backspace}
    
    ; Home and End.
    CapsLock & m::Send {Home}
    CapsLock & ,::Send {End}
    
    ; Mark word left.
    CapsLock & y::Send ^+{Left}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-14
      • 2011-09-20
      • 2021-12-24
      • 2020-01-15
      • 2015-01-23
      • 1970-01-01
      • 2017-04-22
      • 2013-02-08
      相关资源
      最近更新 更多