2014-11-05 77 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