開發環境:vs2005, c#語言
為了給乙個程式加乙個系統級的熱鍵,在開發時需要使用到下面的**,就是在程式中註冊和解除安裝熱鍵。
1。首先在form1類的函式中新增如下**:
[dllimport("user32.dll")]
private static extern bool registerhotkey(intptr hwnd, int id, uint fsmodifiers, keys vk);
[dllimport("user32.dll")]
private static extern bool unregisterhotkey(intptr hwnd, int id);
注意,使用上面的**前,必須使用"using system.runtime.interopservices;"來引入命名空間。
2。在form1的建構函式中註冊熱鍵:
public form1()
registerhotkey(handle, 100, 0, keys.escape); //註冊熱鍵: esc
3. 重寫視窗的wndproc函式:
protected override void wndproc(ref message m)
base.wndproc(ref m);
}4。在析構函式中解除安裝熱鍵:
~form1()
unregisterhotkey(handle, 100); //視窗未啟用時解除安裝熱鍵
這樣就完成了我們的所有設定。但是這個新增的熱鍵是系統級熱鍵
,也就是說不管這個視窗有沒有被啟用,這個熱鍵都是能起作用的。
但是有時我們並不希望這種熱鍵是系統級的,而是希望當前視窗被啟用時,該熱鍵才起作用,如果沒有被啟用,該熱鍵不起作用。於是,我想了辦法,就是更改熱鍵註冊和解除安裝的時間。
思路:在form1的form1_activated事件中註冊熱鍵,在form1_deactivate中解除安裝熱鍵,其他不變,**如下:
private void form1_activated(object sender, eventargs e)
private void form1_deactivate(object sender, eventargs e)
這樣就達到了視窗級的熱鍵。
根據同樣的思路,你可以選擇其他的時機來註冊或解除安裝熱鍵!
C 獲取視窗控制代碼,給視窗設定全域性熱鍵
最近沒事學習了下c 用mfc做了乙個小程式 點選應用程式視窗獲取程式控制程式碼,給應用程式設定全域性熱鍵,隱藏程式。思路 1.截獲滑鼠點選事件。2.獲取點選的視窗控制代碼。3.設定全域性熱鍵。4.響應熱鍵的事件。實現 1.截獲滑鼠點選事件。使用setcapture 將所有的滑鼠訊息據為己有。在捕獲過...
為你的程式新增系統級熱鍵
很多情況下,我們需要給程式新增乙個系統級的熱鍵。就像常用的qq在啟動後,任何時間只要按下ctrl alt z就能將qq的主介面調出。當然,我們還可以幹其他很多事情!我們在為程式加上熱鍵後,每當按下你所設定的快捷鍵,就會給主視窗發出乙個wm hotkey的訊息,但很可惜,class wizartd並沒...
js子級視窗相互呼叫父級的方法
jump.html 是父級頁面 方法aaa 是沒有任何地方呼叫的。myframe.html 是父級頁面開啟的乙個iframe,即子級視窗。當如果你想子級視窗處理完邏輯,告知父級情況的時候,就可以用到以下的方法。window.parent.父級方法名 執行看效果 這樣就算完成了 父級呼叫子級的方法 d...