为什么 AHK 中的修饰键顺序很重要?

为什么 AHK 中的修饰键顺序很重要?

我使用 Autohotkey 在按下 Alt+Control+f 时执行宏电子

我有:

#SingleInstance

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.

SetTitleMatchMode RegEx

#IfWinActive ^Electron
Alt::Return ;Disables the key alt when it's pressed alone

; Control & Alt & F to run macro
!^f::
{
; wait for release of keys
   KeyWait Control
   KeyWait Alt
   KeyWait f
; reproduce sequence
   SendInput ^f
   sleep 200
   SendInput fig{+}
   Return
}
#IfWinActive

但是,如果我先按 Control 再按 Alt,它就不起作用了,菜单就像我以前只按 Alt 时一样出现(即使我单独禁用了 Alt,请参见第一行)。当我按 Alt+Control+f 时,宏可以正常工作。

这是为什么呢?我以为,无论我如何操作,触发器“!^f”都会在三个键都处于按下状态时触发。

我应该如何修改宏以使其无论 Alt 和 Control 的顺序如何都会触发?

答案1

您的代码对我有用。您使用的是哪个版本的 AutoHotKey?我的是 V1。

也许这个代码对你来说会更好:

Alt::return

#If, GetKeyState("Alt", "P") and GetKeyState("Control", "P")
!^f::
  SendInput ^f
  sleep 200
  SendInput fig{+}
  return

相关内容