2014-11-05 76 views
0

我有一个非常简单的AutoHotkey.ahk文件,在那里我重新映射CapslockEscEscCapslock(交换密钥):不得不“重新载入此脚本”在AutoHotkey的一些程序皮卡重新映射

Capslock::Esc 
Esc::Capslock 

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

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

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

回答

0

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

签入“上下文相关热键”文档(在索引中的“热键”下)。下面是从文档的例子:

#IfWinActive,ahk_class记事本^ A :: MSGBOX您按下Ctrl键 - 一个,而记事本处于活动状态。按下Ctrl键 - 在任何其他窗口一个将通过 按Ctrl - 一个击键到窗口。 #c :: MsgBox记事本处于活动状态时,您按下了Win-C。

但我想我知道为什么它开始“不工作”。这可能是某些程序将这些键设置为热键。无论何时你启动这些程序,他们都会设置自己的热键,并覆盖脚本。你看,热键组合属于它最后的任何程序集。重新加载脚本时,它会将您的脚本重置为具有创建权限。

因此,如果你希望脚本永远不会被覆盖,你不想手动重新加载它,找出程序的组合不工作的,并使用ifwinactive使用的AutoHotkey的reload命令重新加载脚本。

+0

我想要列出的这些键盘映射。我有脚本运行,但keymappings不适用于某些游戏。他们在桌面上工作。重新加载脚本(已经运行)后,keymappings可以在游戏中运行(以及在桌面上)。希望能解释我的问题。 – agronemann 2014-11-05 18:08:36

+0

您是否查看了文档中的指令?这是为keymappings。它使它们适用于你想要的程序,而不是你不想要的程序。 – bgmCoder 2014-11-05 22:07:50

+0

但我希望他们能够在所有程序中工作。 – agronemann 2014-11-07 06:54:11