当在Electron中按下 Alt+Control+f 时,我使用 Autohotkey 来执行宏。
我有:
#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 的顺序如何都触发?
你的代码对我有用。您使用的是哪个 AutoHotKey 版本?我的是V1。
也许这段代码更适合您:
您的代码在这里运行良好(我在记事本、Notepad++ 和 MS Office 中测试了它)。
首先在仅运行该代码且没有其他脚本运行的脚本中尝试,以防其他因素干扰。
要禁用 Alt 键激活活动窗口菜单栏的功能,同时仍允许将其用作修饰符,请使用:
有关详细信息,请参阅MenuMaskKey。
编辑:
这听起来像是那种以管理员身份运行的程序。尝试此常见问题解答中的解决方法: https ://www.autohotkey.com/docs/FAQ.htm#uac
或将其添加到自动执行部分(脚本顶部):
https://autohotkey.com/docs/commands/Run.htm#RunAs