请考虑以下代码。键入x后跟{Backspace}后我希望收到一个退格键但是autohotkey没有显示反应。对于其他键,不会出现此问题。有没有办法修复这段代码?
~x::
Input Key, L1
if Key=s
{
do something
exit
}
else {
send %Key%
}
return
一个明确的例子:
~x::
Input Key, L1
if Key=s
{
send blablabla
exit
}
else {
send %Key%
}
return
答案 0 :(得分:1)
您可以将BackSpace
和所有其他键放在EndKeys
命令的第三个Input
参数中,然后发送EndKey
(如果已按下)。
~x::
Input Key, L1, {BackSpace}{Enter}{LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}
; If end key was pressed, extract it and replace `Key` with the EndKey
FoundPos := RegExMatch(ErrorLevel, "EndKey:(.*)", SubPat)
if (FoundPos > 0)
Key = {%SubPat1%}
if (Key="s")
send blablabla
else
send %Key%
return
您可以在documentation。
中找到有关它的更多信息另一种解决方案是使用A_PriorKey
检查x
之前是否已按下s
。
; $ is required to prevent the hoteky from firing itself
$s::
if (A_PriorKey = "x")
Send blablabla
else
Send s
return