【问题标题】:AutoHotkey (.ahk). capslock activated自动热键 (.ahk)。大写锁定激活
【发布时间】:2017-02-26 16:01:04
【问题描述】:

我使用 .ahk 已经有几天了,使用起来很酷。 我试着说,如果 CapsLock 被激活,我的代码运行/不运行。 下面的代码检查此时是否按下 CapsLock(工作)。

GetKeyState, CapLck, CapsLock, P
if ( CapLck == "D" ) {
some statement
}

如果我在 CapsLock 激活后单击它,我想更改它 - 当我再次按下它时它会停用。

我的研究发现,GetKeyState, CapLck, CapsLock, P 中的参数 P 检查 CapsLock 是否在此时被物理点击。如果这是真的,它会返回用于检查下面 if 语句的 D。

所以我尝试将代码从

GetKeyState, CapLck, CapsLock, P
if ( CapLck == "D" ) {
some statement
}

到这里

GetKeyState, CapLck, CapsLock, T
if ( CapLck == 1 ) {
some statement
}

如果我正确阅读了 GetKeyState 文档,参数 T 会检查 CapsLock 是否已激活。如果被激活,它会返回 1 为真; 0 表示错误。

遗憾的是,我的更改不适用并且不起作用。有什么想法吗?

谢谢。

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    试试这个:

    #If GetKeyState("CapsLock", "T") ; If Capslock is On
        a::MsgBox % "CAPSLOCK IS ON"
    #If
    
    a::MsgBox % "CAPSLOCK IS OFF"
    

    【讨论】:

    • 我不确定如何实现这一点。像这样? #If GetKeyState("CapsLock", "T") ;如果 Capslock 开启 Cnt:=60
    【解决方案2】:

    为了检查 CapsLock 是否被激活或没有简单地改变

    GetKeyState, CapLck, CapsLock, P
    if ( CapLck == "D" ) {
    some statement
    }
    

    到

    GetKeyState, CapLck, CapsLock, T
    if ( CapLck == "D" ) {
    some statement
    }
    

    与 AutoHotKey 文档相比,参数 T 返回 "D" 表示真而不是 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 2015-06-23
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多