2012-11-07 50 views
0

我將USB遙控器連接到我的軟件,並且需要註冊全局熱鍵才能使用它。我準備好了代碼,並且按照預期工作,但是當我將遙控器掛起時,我發現在處理修改鍵時需要特定的左或右Alt鍵。用於全局熱鍵註冊的修改鍵代碼

換句話說,現在我已經將全局熱鍵設置爲接受ALT + SHIFT + 0來運行特定功能。當我連接遙控器時,我意識到他們的映射需要識別特定的鍵修改器。因此,我需要專門搜索L-ALT + L-SHIFT + 0.我已經搜索了這些修飾符映射,但一直未能找到任何說明它們的東西。我只能找到一般ALT鍵的修飾符,而不是特定的L-ALT修飾符。

目前,我有我的鑰匙這樣定義:

public const int NOMOD = 0x0000;   // No HotKey 
    public const int ALT = 0x0001;    // ALT 
    public const int CTRL = 0x0002;    // CTRL 
    public const int SHIFT = 0x0004;   // SHIFT 
    public const int WIN = 0x0008;    // WIN button 
    public const int WM_HOTKEY_MSG_ID = 0x0312; // Windows message ID for HotKey 

我試圖找到什麼代碼將是L-Alt鍵,L-CTRL,和L-Shift鍵的映射關係,但有不成功。它們似乎不是ASCII。有誰知道這些正確的代碼,或者我可以在哪裏找到它們?謝謝。

+1

我想你所指的是[修飾鍵](http://en.wikipedia.org/wiki/Modifier_key)? [熱鍵](http://msdn.microsoft.com/en-us/library/windows/desktop/bb775233(v = vs.85).aspx)是一個非常不同的事情。你應該改述你的問題來澄清。 – gregmac

+0

@gregmac - 感謝您的建議。我正在設置全局熱鍵,但你是正確的,我在詢問修改器代碼。我已經對我的問題進行了更改,以便更具體。 – Tim

回答

0

我輸入Keys和命中F12去定義,它左ALT和右ALT列爲LMenuRMenu與164和165的值這是否幫助你或我完全找錯了地方。

+0

謝謝你的回覆。我的理解是,在設置全局熱鍵時,修飾符與Keys不同。它們似乎使用按位編號,因此它們可以組合,因此是1,2,4,8編號方案。再次感謝您的回覆。 – Tim

0

其他研究表明,您無法使用特定的SHIFT,ALT和CTRL鍵映射全局熱鍵。但是,經過多次實驗並重新閱讀遠程文檔後,我發現他們沒有使用標準ASCII密鑰映射作爲密鑰。他們將左上角的鍵標記爲0,然後依次遞增,然後到右下角的鍵。因此,0被映射到ESC,在我的情況下,18被映射到1鍵。