2011-03-16 73 views
0

截取Windows上的大寫鎖定按鈕以製作像Launchy這樣的程序的最佳方法是什麼?攔截按下大寫鎖定的最佳方式

目前,我設置了一個SetWindowsHookEx的低級別鉤子,但對我來說這有點太低級,因爲我不想攔截其他正在嘗試激活低級別的程序。我正在尋找儘可能高的攔截水平,但仍然可以阻止開啓Caps Lock本身......有更好的建議嗎?

+0

Inline asm ok? :P – BlackBear 2011-03-16 21:59:15

+0

哈哈,什麼?這將如何幫助/工作? – Mehrdad 2011-03-16 21:59:38

+0

實際上它很簡單,只需調用一箇中斷並在Win32用戶模式下屏蔽你需要的位 – BlackBear 2011-03-16 22:03:22

回答

0

顯然,最好的辦法是使用低級別掛鉤,因爲RegisterHotkey沒有攔截的關鍵。

0

您可以使用RegisterHotKey

RegisterHotKey(hWnd, 0, 0, VK_CAPITAL); 

你的窗口將收到只要按下此鍵一WM_HOTKEY消息。

+1

這並不妨礙大寫鎖定切換狀態 - 它太高級了:( – Mehrdad 2011-03-16 22:30:03

+0

@Mehrdad:這是真的,但是如果不使用鉤子,你不能「防止」這個,但是你可以使用['' SetKeyboardState'](http://msdn.microsoft.com/en-us/library/ms646314%28VS.85%29.aspx),但使用鉤子會更有效率。 – casablanca 2011-03-16 22:53:32

+0

啊,所以沒有其他辦法了嗎?有沒有比我可以使用的低級別鍵盤鉤子更高級別的鉤子,或者是我最後(也是唯一)的選項? – Mehrdad 2011-03-16 23:09:49