使用 Autohotkey 使双击 Home 成为 Home,单击成为 PrintScreen

Make doubleclick Home act as Home with Autohotkey, and single click as PrintScreen

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

在我之前使用的代码之下,它以相反的方式起作用(双击使其充当 PrintScreen,一次充当 Home)。确实有效。

任何人都可以告诉我我需要在脚本中更改什么吗?

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

不要通过 ~ 传递热键,使用 $ 表示您可以发送您在其处理程序中覆盖的热键。检查 A_PriorKey 而不是 A_PriorHotKey 以便它过滤掉快速键入的非热键按键序列,例如 Homea首页.

这会在双击时发送 Home 但在检测到双击之前它还会发送 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