給視窗設定系統級或視窗級的熱鍵

2021-05-12 21:55:37 字數 1181 閱讀 6438

開發環境: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...