2012-12-06 159 views
3

我有兩個鍵盤連接到我的電腦。普通的全尺寸鍵盤和數字小鍵盤。我想「重新映射」數字小鍵盤上的按鍵,但只留下全鍵盤。所以,當用戶在鍵盤上按下「5」時,它將被重新映射到「媒體播放」鍵,但是如果在全鍵盤的鍵盤上按下相同的「5」,我會得到「5」。實質上,我想將單獨的數字鍵盤變成媒體控制設備。你可以重新映射特定鍵盤的鍵嗎?

不幸的是我不知道如何使這項工作。 Windows有一個「原始輸入」功能,可以區分鍵盤,但只允許讀取鍵 - 不能重新映射它們。鍵盤掛鉤(低級別和高級別)可以重新映射按鍵,但不區分鍵盤。

我可以結合使用這兩種方法嗎?爲此,我必須確保原始輸入消息在鍵盤鉤開始前處理。是這樣嗎?

另外,我讀過Windows出於某種原因不允許在同一個進程中使用Raw Input和Keyboard Hooks。我可以通過創建2個不同的進程來解決這個問題,但由於通信延遲(鍵盤掛接的時間非常有限,他們必須完成他們的工作)而變得更加脆弱。

這樣可以嗎?

回答

2

最後事實證明,我需要一個自定義鍵盤驅動程序來實現這一點。幸運的是,我發現一個準備好 - Interception。該應用程序已準備好,並完美運作。 :)

+0

這是應用公開?這聽起來非常有用 – Yary

+0

@Yary - 不,我沒有發表過,但需要很多擦亮才能對其他人有用,我已經硬編碼了我的鍵盤硬件ID和密鑰映射。 ,如果你想適應自己的需要,你可能只需從頭開始編寫一個。 –

+1

@Yary - 如果你想要它,那麼你可以去http://valts.21.lv/Mediaception.zip 。請記住,您還需要安裝驅動程序,您可以從該驅動程序下載上面的攔截網站。 –

0

我覺得luamacros(以前hidmacros可以做你想做什麼,有可用的源代碼。

+0

我不太確定。我無法真正製作存儲庫的正面或反面,但我看到了鍵盤掛鉤和原始輸入的痕跡。如問題所述,這兩種技術無法達到預期的效果。 –