使用Autohotkey将双击Home作为Home,然后单击PrintScreen

时间:2015-10-13 07:51:39

标签: autohotkey

我希望我的主页按钮(单击)充当PrintScreen,双击主页按钮充当主页。我无法让它发挥作用。

在我之前使用的代码之下,反之亦然(双击使其充当PrintScreen,一次充当Home)。这确实有效。

有人可以告诉我在脚本中需要更改的内容吗?

~Home::
if (A_PriorHotKey = "~Home" AND A_TimeSincePriorHotkey < 400)
{
   Send, {PrintScreen}
  ;Msgbox,Double press detected.
}
Sleep 0
KeyWait Home
return

1 个答案:

答案 0 :(得分:2)

请勿使用~通过热键,使用$表示您可以在其处理程序中发送您覆盖的热键。检查A_PriorKey而不是A_PriorHotKey,以便过滤掉快速输入的非热键按键序列,例如 Home a Home

这会在doublepress上发送 Home 但是在检测到doublepress之前它还会发送 PrintScreen

Home::send % A_PriorKey="Home" && A_TimeSincePriorHotkey<400 ? "{Home}" : "{PrintScreen}"

这可以通过将 PrintScreen 延迟400毫秒来解决上述问题:

$Home::
    if (A_PriorKey = "Home" && A_TimeSincePriorHotkey < 400) {
        settimer, sendPrintScreen, off
        send {Home}
    } else {
        settimer, sendPrintScreen, 400
    }
    return

sendPrintScreen:
    settimer, sendPrintScreen, off
    if (A_PriorKey = "Home")
        send {PrintScreen}
    return