AutoHotKey 独有的双击 shift 后跟动作键
AuthoHotKey exclusive double tap shift followed by action key
我正在尝试完成一个自动热键脚本,您可以在其中双击任何 SHIFT 键并在其后按特定字母以激活宏。
我有以下脚本,但我有两个 "bugs" 我不知道如何解决。我试过其他论坛但没有运气。希望有人能帮助我。
我对此有点陌生。
错误 1:如果您按下两个 SHIFT 键之间的任何字母,宏就会被激活,而只有当您只按下 SHIFT 键时,宏才会被激活。例如,按 SHIFT、s、SHIFT、d 将启用宏。
错误 2:我不确定这是怎么发生的,但是使用以下代码,我在输入时会定期激活所有或部分宏。当我输入句子中的第一个大写字母时,似乎会发生这种情况。但只是有时。例如... "bla bla bla profiles. S"
我已经在超时上胡思乱想了,但这似乎并没有太大的区别。感谢任何帮助。
谢谢,
杰夫
~Shift Up::
If (A_ThisHotkey == A_PriorHotkey && A_TimeSincePriorHotkey < 400)
{
Double_SHIFT := true
Sleep, 2000
Double_SHIFT := false
}
return
; Press a key within two seconds after double tapping the Shift key, to activate an action:
#If (Double_SHIFT)
d::
FormatTime, CurrentDateTime,,MM/dd/yy - hh:mmtt
SendInput %CurrentDateTime%
Double_SHIFT :=false
return
a:: MsgBox, Test
s:: MsgBox, Test
f:: MsgBox, Test
return
错误 1 修复:
endKeys := "{BS}{Enter}{Insert}{Home}{Pgup}{PdDwn}End}{Delete}"
. "{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}"
. "{LShift}{RShift}{Tab}{Esc}{CAPSLOCK}{Ctrl}{PrintScreen}{NumLock}"
. "{Numpad0}{Numpad0}{Numpad0}{Numpad0}{Numpad0}{Numpad0}{Numpad0}"
. "{Numpad7}{Numpad8}{Numpad9}{NumpadDel}{Up}{Down}{Left}{Right}"
. "{LAlt}{RAlt}{.}{,}{/}"
~Alt Up::
Input, key, V L1 t0.5 E, % endKeys
If (Errorlevel ~= "Alt") {
Double_ALT := true
Sleep 2000
Double_ALT := false
}
return
; Press a key within two seconds after double tapping the Alt key, to activate an action:
#If (Double_ALT)
d::
FormatTime, CurrentDateTime,,MM/dd/yy - hh:mmtt
SendInput %CurrentDateTime%
Double_ALT :=false
return
a:: MsgBox, Test
s:: MsgBox, Test
f:: MsgBox, Test
return
我正在尝试完成一个自动热键脚本,您可以在其中双击任何 SHIFT 键并在其后按特定字母以激活宏。 我有以下脚本,但我有两个 "bugs" 我不知道如何解决。我试过其他论坛但没有运气。希望有人能帮助我。 我对此有点陌生。
错误 1:如果您按下两个 SHIFT 键之间的任何字母,宏就会被激活,而只有当您只按下 SHIFT 键时,宏才会被激活。例如,按 SHIFT、s、SHIFT、d 将启用宏。
错误 2:我不确定这是怎么发生的,但是使用以下代码,我在输入时会定期激活所有或部分宏。当我输入句子中的第一个大写字母时,似乎会发生这种情况。但只是有时。例如... "bla bla bla profiles. S"
我已经在超时上胡思乱想了,但这似乎并没有太大的区别。感谢任何帮助。
谢谢, 杰夫
~Shift Up::
If (A_ThisHotkey == A_PriorHotkey && A_TimeSincePriorHotkey < 400)
{
Double_SHIFT := true
Sleep, 2000
Double_SHIFT := false
}
return
; Press a key within two seconds after double tapping the Shift key, to activate an action:
#If (Double_SHIFT)
d::
FormatTime, CurrentDateTime,,MM/dd/yy - hh:mmtt
SendInput %CurrentDateTime%
Double_SHIFT :=false
return
a:: MsgBox, Test
s:: MsgBox, Test
f:: MsgBox, Test
return
错误 1 修复:
endKeys := "{BS}{Enter}{Insert}{Home}{Pgup}{PdDwn}End}{Delete}"
. "{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}"
. "{LShift}{RShift}{Tab}{Esc}{CAPSLOCK}{Ctrl}{PrintScreen}{NumLock}"
. "{Numpad0}{Numpad0}{Numpad0}{Numpad0}{Numpad0}{Numpad0}{Numpad0}"
. "{Numpad7}{Numpad8}{Numpad9}{NumpadDel}{Up}{Down}{Left}{Right}"
. "{LAlt}{RAlt}{.}{,}{/}"
~Alt Up::
Input, key, V L1 t0.5 E, % endKeys
If (Errorlevel ~= "Alt") {
Double_ALT := true
Sleep 2000
Double_ALT := false
}
return
; Press a key within two seconds after double tapping the Alt key, to activate an action:
#If (Double_ALT)
d::
FormatTime, CurrentDateTime,,MM/dd/yy - hh:mmtt
SendInput %CurrentDateTime%
Double_ALT :=false
return
a:: MsgBox, Test
s:: MsgBox, Test
f:: MsgBox, Test
return