RegisterHotKey註冊快捷鍵

2021-09-06 15:19:45 字數 1920 閱讀 1475

bool   registerhotkey( 

hwnd   hwnd,         //響應該熱鍵的視窗控制代碼 

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

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

uint   vk                 //該熱鍵的鍵值 

);   

為了得到唯一標識,我們還將用到另乙個api函式   

atom   globaladdatom( 

lpctstr   lpstring   //自己設定的乙個字串 

); 

例如:註冊熱鍵

m_hkid = ::globaladdatom(_t("myhotkey")) - 0xc000;

bool bl = ::registerhotkey(gethwnd(), m_hkid, mod_shift, vk_f1);

因為我們還要在程式退出的時候,消除這個熱鍵,   所以需要宣告乙個全域性變數:   

hotkeyid:   integer;   

第一步:   

在視窗的create事件中,加入以下**   

hotkeyid   :=   globaladdatom(『myhotkey』)   -   $c000; 

注:   hotkeyid的合法取之範圍是0x0000到0xbfff之間,   globaladdatom函式得到的值 

在0xc000到0xffff之間,所以減掉0xc000來滿足呼叫要求。 

第二步:   

在上面的**下面加入:   

registerhotkey(handle,   hotkeyid,   mod_alt,   vk_f8);     

熱鍵的輔助按鍵包括mod_ctrl   、mod_alt、mod_shift,對於windows相容鍵盤還支援windows 

鍵,即其鍵面上有windows標誌的那個鍵,其值為mod_win。 

上面   的**註冊了乙個熱鍵:alt+f8。當然如果你希望象takeit那樣,只用f8,   就這麼寫: 

registerhotkey(handle,   hotkeyid,   0,   vk_f8);     

注:handle是乙個特殊的變數,它表示當前視窗的控制代碼。 

這個函式你應該能句舉一反三了吧。 

原理: 

一旦熱鍵設定成功,在程式應用過程中如果有相應的鍵被按下,windows系統都會給你的應 

用程式傳送乙個訊息wm_hotkey,不管你的應用程式是否為當前活動的。其中wm_hotkey消 

息的格式為:     

idhotkey   =   (int)   wparam;   //   該引數在設定系統級的熱鍵有用,一般不予使用 

fumodifiers   =   (uint)   loword(lparam);     //熱鍵的輔助按鍵 

uvirtkey   =   (uint)   hiword(lparam);   //熱鍵的鍵值   

第三步:   

註冊了熱鍵,就該寫下響應**了。   

首先,在程式頭部分的private段中加入宣告   (作用是宣告這個過程,和宣告變數類似。 

procedure   hotkeydown(var   msg:   tmessage);   message   wm_hotkey;   

然後在程式中加入如下**:   

訊息處理函式中判斷訊息是否為 wm_hotkey訊息

case wm_hotkey:

//熱鍵要處理的操縱

}break;

最後一步:   

在視窗的close事件中加入   

unregisterhotkey(handle,   hotkeyid);   //登出hotkey,   釋放資源

C 註冊熱鍵 RegisterHotKey

vc 註冊熱鍵 registerhotkey 需要同時按住 ctrl 方向鍵,則使用 註冊熱鍵 的方法。1 定義熱鍵,不要重複,防止熱鍵衝突 define myhotkey1 1018 define myhotkey2 1019 2 註冊熱鍵 registerhotkey m hwnd,myhotk...

時間盲注手注

基於時間的盲注 時間的概念 使用特定函式讓資料庫去執行,通過自己的設定,來檢視資料庫是否get到我們的請求 函式sleep 設定資料庫的延時或者暫停的時間 函式limit 0,1 限制第乙個的第乙個字元 函式mid 1,1 從第乙個字元開始擷取,只擷取乙個 函式benchmark 引數一,引數二 第...

布林盲注手注

布林盲注 mid str,1,3 字串擷取 意思就是把str這個字串從第乙個字串開始,擷取前三個顯示 substr 這個函式和上面的用法一樣,也是用來擷取字串的 ord 轉換成ascii碼 length 統計長度 version 是檢視資料庫版本 database 檢視當前資料庫名 user 檢視當...