将 Excel F2 映射到其他按钮在重新映射到打开和应用程序时不起作用



我映射了{F2}以打开/启动"OneNote" 我想在Excel是活动应用程序时使用XButton2来获取F2的功能。 但是,按下 XButton2 始终会激活 OneNote。

我尽了一切努力来完成这项工作。

F2::
IF WinExist("ahk_exe ONENOTE.EXE") {
WinActivate
}
RETURN
#IfWinActive ahk_class XLMAIN 
$XButton2::
send {F2}
return
#IfWinActive

您的问题是您通过发送 F2 触发 F2 热键。
为避免这种情况,您需要在 F2 热键上使用$修饰符,如下所示:
$F2::
看起来您实际上在您的 XButton2 热键上拥有它?也许你走在正确的轨道上,但它在错误的热键上?无论哪种方式,它都不会为您做任何事情,因此您可以将其删除。
(替代#UseHook可以在上面的某处指定,因此键盘挂钩是为其之后的每个热键实现的(

现在,关于您的脚本的一些杂项修复。在 AHK 中,简单的重映射实际上是这样完成的:
XButton2::F2
甜蜜干净的小单行。(单行热键也不需要return(

所以这将是你的成品:

$F2::
IF WinExist("ahk_exe ONENOTE.EXE") {
WinActivate
}
RETURN
#IfWinActive ahk_class XLMAIN 
XButton2::F2
#IfWinActive

就个人而言,我也会省略括号,因为单行 if 语句不需要它们。但这当然只是偏好。也不确定你为什么要大写return.

最新更新