日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

给窗口设置系统级或窗口级的热键

發(fā)布時間:2023/12/9 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给窗口设置系统级或窗口级的热键 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開發(fā)環(huán)境:VS2005, C#語言

為了給一個程序加一個系統(tǒng)級的熱鍵,在開發(fā)時需要使用到下面的代碼,就是在程序中注冊和卸載熱鍵。

?

1。首先在Form1類的函數(shù)中添加如下代碼:

[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的構(gòu)造函數(shù)中注冊熱鍵:

public Form1()

{

??? RegisterHotKey(Handle, 100, 0, Keys.Escape);??? //注冊熱鍵: Esc

}

?

3. 重寫窗口的WndProc函數(shù):

protected override void WndProc(ref Message m)
??????? {
??????????? if (m.Msg == 0x312)
??????????? {
??????????????? if (m.WParam.ToInt32() == 100)
??????????????????? this.Close();?????????????????????????????????????? //當(dāng)按下Esc鍵時關(guān)閉本窗口
??????????? }
??????????? base.WndProc(ref m);
??????? }

?

4。在析構(gòu)函數(shù)中卸載熱鍵:

~Form1()

{

??? UnregisterHotKey(Handle, 100);????????????????? //窗口未激活時卸載熱鍵???????????

}

?

這樣就完成了我們的所有設(shè)置。但是這個添加的熱鍵是系統(tǒng)級熱鍵,也就是說不管這個窗口有沒有被激活,這個熱鍵都是能起作用的。

?

但是有時我們并不希望這種熱鍵是系統(tǒng)級的,而是希望當(dāng)前窗口被激活時,該熱鍵才起作用,如果沒有被激活,該熱鍵不起作用。于是,我想了辦法,就是更改熱鍵注冊和卸載的時間。

思路:在Form1的Form1_Activated事件中注冊熱鍵,在Form1_Deactivate中卸載熱鍵,其他不變,代碼如下:

private void Form1_Activated(object sender, EventArgs e)
??????? {
??????????? RegisterHotKey(Handle, 100, 0, Keys.Escape);??? //在窗口激活時注冊熱鍵: Esc
??????? }

??????? private void Form1_Deactivate(object sender, EventArgs e)
??????? {
??????????? UnregisterHotKey(Handle, 100);????????????????? //窗口未激活時卸載熱鍵???????????
??????? }

?

這樣就達到了窗口級的熱鍵。

?

根據(jù)同樣的思路,你可以選擇其他的時機來注冊或卸載熱鍵!

總結(jié)

以上是生活随笔為你收集整理的给窗口设置系统级或窗口级的热键的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。