Post by tmplinshi » 11 Sep 2020, 06:52
首先, 空格的名称是
{Space}, 而不是
{SPC}
然后, 可以用
A_TimeSinceThisHotkey 来判断长按短按
Code: Select all
^r::MsgBox Ctrl + r
^!r::MsgBox Alt + Ctrl + r
Lalt::
Send {LControl Down}
KeyWait, Lalt
Send {LControl Up}
If (A_TimeSinceThisHotkey < 300)
{
Send {Space}
}
return
以上代码可以区分长按短按, 但是当你长按住
alt, 再按
r, 会发现实际上触发的是
Alt + Ctrl + r, 而不是预想中的
Ctrl + r.
另外代码逻辑与你的描述也不一致. 你的描述是 "单击变空格, 长按变
ctrl", 但是代码不管长按短按都会按
ctrl
首先, 空格的名称是 [c]{Space}[/c], 而不是 [c]{SPC}[/c]
然后, 可以用 [c]A_TimeSinceThisHotkey[/c] 来判断长按短按
[code]^r::MsgBox Ctrl + r
^!r::MsgBox Alt + Ctrl + r
Lalt::
Send {LControl Down}
KeyWait, Lalt
Send {LControl Up}
If (A_TimeSinceThisHotkey < 300)
{
Send {Space}
}
return[/code]
以上代码可以区分长按短按, 但是当你长按住[kbd]alt[/kbd], 再按 [kbd]r[/kbd], 会发现实际上触发的是 [kbd]Alt + Ctrl + r[/kbd], 而不是预想中的 [kbd]Ctrl + r[/kbd].
另外代码逻辑与你的描述也不一致. 你的描述是 "单击变空格, 长按变 [kbd]ctrl[/kbd]", 但是代码不管长按短按都会按 [kbd]ctrl[/kbd]