如何制作取决于 CapsLock 是否切换的上下文相关热键?

问题描述 投票:0回答:1

仅当

mn
已切换时,我才想自动替换
CapsLock
为我的名字。

我尝试了很多方法,但没能成功。

autohotkey
1个回答
1
投票

这可以通过使用以下关键字来实现:

  • #HotIf [Expression]

    该关键字根据
    Expression
    的评估创建上下文相关的热键和热字符串。
    您应该检查文档以获得更好的理解,但作为一般准则,该指令会影响其后定义的热键的行为,除非另有说明。
  • GetKeyState(KeyName, [Mode])

    您应该检查文档以使其适应您的脚本,但我可以根据给定的信息为您提供一些一般准则。
    • Mode
      参数应设置为
      "T"
      ,因为您想要检索按键的切换状态。
    • Keyname
      应设置为
      CapsLock

换句话说,您的脚本应该如下所示:

#HotIf GetKeyState("CapsLock", "T")
::mn::My Name

没有更多背景,这就是我能做的。正如 @Jannick Breunis 已经提到的,最好的做法是展示您所尝试的内容(通过提供您自己的代码片段或错误消息(如果有)),并详细说明所需的行为,因为您可能想要输入

Space
后无需按
mn
即可触发热字串。
另请注意,热字符串的行为不区分大小写。这一点特别重要,因为打开 CapsLock 意味着您将输入
MN
来触发热字符串。
检查文档以了解更详细的热字符串触发行为(我不确定为什么您需要在键入
Shift
并切换
mn
时按住
CapsLock
,但您可以自由地这样做)。

© www.soinside.com 2019 - 2024. All rights reserved.