必须"重新加载此脚本"在AutoHotkey中,某些程序可以拾取重映射

时间:2014-11-05 09:12:45

标签: autohotkey

我有一个非常简单的AutoHotkey.ahk文件,我将Capslock重新加载到Esc,将Esc重新加载到Capslock(交换密钥):

Capslock::Esc
Esc::Capslock

然而,这在“战地4”或“英雄联盟”等游戏中并不起作用。它根本不做任何事情。

但是,我可以在AutoHotkey中按Reload This Script,重新映射将在这些游戏中开始工作。但它确实可以在其他游戏中使用,而无需先重新加载脚本。

我希望你能帮助我。我真的希望这只是工作,而不是手动重新加载脚本。

1 个答案:

答案 0 :(得分:0)

尝试使用#IfWinActive指令,以便这些热键仅适用于您想要的程序 - 然后您不需要重新加载。

签入"上下文相关热键"的文档。 (在" hotkey"在索引中)。以下是文档中的示例:

  

#IfWinActive,ahk_class Notepad ^ a :: MsgBox在记事本处于活动状态时按 Ctrl - A 。在任何其他窗口中按 Ctrl - A 将通过    Ctrl - A 按键到该窗口。   #c :: MsgBox在记事本处于活动状态时按下了Win-C。

但我想我知道为什么它开始"不工作"。可能某些程序将这些键设置为热键。每当你启动这些程序时,他们都会设置自己的热键,它会覆盖你的脚本。你看,热键组合属于它持续的任何程序。当您重新加载脚本时,它会将您的脚本重置为具有authourity。

因此,如果您希望永远不会覆盖该脚本,并且您不想手动重新加载它,请找出这些组合无法使用的程序,并使用ifwinactive重新加载您的脚本使用autohotkey' reload命令。

相关问题