我試圖製作一個應用程序,如Launchy/Enso等,當用戶按Caps Lock鍵時彈出。如何繞過「前臺鎖定超時」來激活我的窗口?
爲此,我需要安裝一個低級別鍵盤鉤子(WH_KEYBOARD_LL
),從中我隨後生成一個線程來顯示要呈現給用戶的對話框。
問題是,當我以某種方式竊取焦點時(例如通過單擊另一個窗口),然後按下Caps Lock一小段時間,我的窗口就沒有得到鍵盤輸入:輸入進入背景窗口,即使我的窗口是「活動」(從看標題欄)。因爲我最終在文本處理器(或聊天框......)中輸入了類似「visu」(對於「Visual Studio」),並按Enter,withotu意識到它沒有按照我的意圖去做。
(有趣的是,在3秒後(左右)暫停,我的窗口標題欄突然變得「不活躍」,儘管它在第一個地方是從來沒有激活!)
我怎麼能繞過這個「保護」機制到其實激活我的窗口?
Raymond Chen在Old New Thing上介紹了這一點...您需要使用shell熱鍵功能而不是試圖竊取焦點。 – 2012-03-28 02:51:24
@BenVoigt:我怎麼用Caps Lock做到這一點,同時抑制輸入? – Mehrdad 2012-03-28 03:02:11
我建議你先閱讀雷蒙德的整個「軍備競賽」系列。 [這是我已經提到的那個](http://blogs.msdn.com/b/oldnewthing/archive/2009/02/26/9445006.aspx)。 – 2012-03-28 03:21:11