我想要一个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)
答案 0 :(得分: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
答案 1 :(得分:0)
复制粘贴和试用复制并且很多,很遗忘被遗忘的地方是我的解决方案。
您可以将alt-Capslock
映射到正常Capslock
和Capslock
本身Esc
按照相同的模式,我尝试使用shift-Capslock
抓取alt-Capslock
和+CapsLock & h::Send {Backspace}
,但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}