当 F2 重新映射到打开和应用程序时,将 Excel F2 映射到不同的按钮不起作用
Mapping the Excel F2 to a different button does not work when F2 is re-mapped to open and application
我将 {F2} 映射到 open/start "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 热键上使用 $
modifier:
$F2::
好像你真的把它放在你的 XButton2 热键上了?也许您走在正确的轨道上,但使用了错误的热键?无论哪种方式,它都不会为您做任何事情,因此您可以将其删除。
(替代 #UseHook
可以在上面的某处指定,因此键盘钩子在它之后的每个热键上实现)
现在对您的脚本进行一些杂项修复。在 AHK 中,简单的 remaps 实际上是这样完成的:
XButton2::F2
甜美干净的小单线。 (一行热键下面也不需要 return
)
这就是你的成品:
$F2::
IF WinExist("ahk_exe ONENOTE.EXE") {
WinActivate
}
RETURN
#IfWinActive ahk_class XLMAIN
XButton2::F2
#IfWinActive
我个人也会省略括号,因为单行 if 语句不需要括号。但这当然只是偏好。也不确定为什么要大写 return
。
我将 {F2} 映射到 open/start "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 热键上使用 $
modifier:
$F2::
好像你真的把它放在你的 XButton2 热键上了?也许您走在正确的轨道上,但使用了错误的热键?无论哪种方式,它都不会为您做任何事情,因此您可以将其删除。
(替代 #UseHook
可以在上面的某处指定,因此键盘钩子在它之后的每个热键上实现)
现在对您的脚本进行一些杂项修复。在 AHK 中,简单的 remaps 实际上是这样完成的:
XButton2::F2
甜美干净的小单线。 (一行热键下面也不需要 return
)
这就是你的成品:
$F2::
IF WinExist("ahk_exe ONENOTE.EXE") {
WinActivate
}
RETURN
#IfWinActive ahk_class XLMAIN
XButton2::F2
#IfWinActive
我个人也会省略括号,因为单行 if 语句不需要括号。但这当然只是偏好。也不确定为什么要大写 return
。