AutoHotKey 中的 Alt + Shift + 字母

AutoHotKey 中的 Alt + Shift + 字母

在 AutoHotKey 中,这个功能很好用

RAlt & a::Send {U+00E4} ; RightAlt + a -> ä

现在我想映射该字母的大写版本,即 RightAlt + RightShift + a -> Ä

我试过了,但没有用

RAlt & RShift & a::Send {U+00C4} ; RightAlt + RightShift + a -> Ä
>!>+a::Send {U+00C4}

我怎样才能同时映射两者

  • 右 Alt + a -> ä
  • 右 Alt + 右 Shift + a -> Ä

答案1

使用RShift & a热键,然后检查的状态RShift

RAlt & a::
GetKeyState,isRShiftDown,RShift,P
IfEqual,isRShiftDown,D
    Send {U+00C4}
else
    Send {U+00E4}
return

另一种选择是:

RAlt & a::
If GetKeyState("RShift","P")=1
    Send {U+00C4}
else
    Send {U+00E4}
return

在这两种情况下,将模式设置为P而不是默认模式意味着它将检查物理按键是否被按下,而不管操作系统认为它处于什么状态。例如,如果某个其他脚本已RShift按下但按键本身未按下,则这些脚本将发送{U+00E4}

答案2

自定义组合

不支持三个或更多键的组合。

对于标准修饰键,普通热键通常与“自定义”组合一样好甚至更好。例如,建议使用 <+s:: 而不是 LShift & s::

尝试一下

>!a::Send {U+00E4} ; RightAlt + a -> ä
>!>+a::Send {U+00C4} ; RightAlt + RightShift + a -> Ä

除了发送 unicode 之外,您还可以使用文本模式

>!a::Send {text}ä
>!>+a::Send {text}Ä

相关内容