Autohotkey 自动热键(.ahk)。capslock激活

Autohotkey 自动热键(.ahk)。capslock激活,autohotkey,Autohotkey,我现在使用.ahk有几天了,使用它很酷。 我试图说,如果CapsLock被激活,我的代码将运行/或不运行。 下面的代码检查此时是否按下CapsLock(工作) 我想改变这一点,如果我点击CapsLock,一旦它被激活,当我再次按下它,它就会被停用 我的研究发现,GetKeyState、CapLck、CapsLock、p中的参数p检查CapsLock是否在此时被物理单击。如果这是真的,它将返回用于在下面的If语句中检查的D 所以我试着从 GetKeyState, CapLck, CapsLock,

我现在使用.ahk有几天了,使用它很酷。 我试图说,如果CapsLock被激活,我的代码将运行/或不运行。 下面的代码检查此时是否按下CapsLock(工作)

我想改变这一点,如果我点击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表示错误

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

谢谢。

试试这个:

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

a::MsgBox % "CAPSLOCK IS OFF"

为了检查CapsLock是否已激活或未简单更改

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


与自动热键文档不同,参数T返回“D”表示真而不是1。

我不确定如何实现这一点。像这样#如果GetKeyState(“CapsLock”、“T”);如果Capslock在Cnt上:=60
GetKeyState, CapLck, CapsLock, P
if ( CapLck == "D" ) {
some statement
}
GetKeyState, CapLck, CapsLock, T
if ( CapLck == "D" ) {
some statement
}