WIN32開發 獲取鍵盤訊息 註冊全域性熱鍵

2021-09-19 11:37:59 字數 893 閱讀 2345

獲取wm_keydown訊息需要相應的獲取焦點問題,只有正確的焦點位置才能操作,這個方法存在一定的體驗問題,現在使用熱鍵在任何情況下都可以獲取你想要的鍵盤訊息。缺點是別的程式將無法再獲取到這個鍵盤訊息,所以一般推薦使用組合鍵熱鍵,單鍵熱鍵不推薦

bool   registerhotkey( 

hwnd   hwnd,         //響應該熱鍵的視窗控制代碼,如果為空,則註冊到呼叫執行緒上 

int   id,                       //該熱鍵的唯一標識 

uint   fsmodifiers,   //該熱鍵的輔助按鍵 

uint   vk                 //該熱鍵的鍵值 

);  

方法:1、巨集定義:

#define mykey1 2019

2、註冊熱鍵:

registerhotkey(mainframehwnd, mykey1, vk_up , 0);//單鍵

registerhotkey(mainframehwnd, mykey1, vk_up |vk_down , 0);//方向鍵上下鍵的組合鍵

registerhotkey(mainframehwnd, mykey1, vk_up |vk_down , 『z』);//方向鍵上下鍵+z的組合鍵

3、獲取:

lresult callback wndproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)中

switch (umsg)

break;

4、登出熱鍵

unregisterhotkey(mainframehwnd,mykey1);

這4步就能夠完成熱鍵的自定義和替換熱鍵功能,比如酷狗、qq**等等軟體上面都有這種功能,很方便

win32開發(按鍵訊息)

一般情況下,如果是普通的字元資訊,比如說0 9 a z,或者是a z,一般只要處理wm char資訊就可以了。但是對於具有特殊含義的key,比如說f1 f12,或者是ctrl shift alt tab windows這樣的key,wm keydown和wm keyup也是需要處理的,因為這些按鍵通...

win32 訊息機制

2 windows訊息系統組成 訊息佇列 作業系統負責為程序維護乙個訊息佇列,程式執行時不斷地從訊息佇列進行訊息的獲取,處理訊息 訊息迴圈 應用程式不斷地獲取訊息,處理訊息構成訊息迴圈。3 win32訊息路由 1.訊息產生 2.系統將訊息排列到其應該排放的執行緒的訊息佇列中。3.執行緒中的訊息迴圈呼...

win32 訊息機制

本次使用的開發環境是vs2013,使用的開發語言是c c 建立的專案是win32專案 當 windows 應用程式開始執行時,系統會為該程式建立乙個訊息 佇列用於存放訊息,然後用 getmessage 等進行訊息獲取處理。程式從佇列中獲取訊息後處理 分為系統訊息佇列 有系統維護,存放系統產生的訊息如...