線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3703
推到 Plurk!
推到 Facebook!

關於keyboard hook

答題得分者是:jessechan
bluechanel
一般會員


發表:7
回覆:15
積分:4
註冊:2003-03-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-10 21:20:21 IP:218.165.xxx.xxx 未訂閱
最近我寫了一個小工具,想在其他應用程式執行時,可以用熱鍵呼叫它的 某個按鈕 (就好像遊戲剋星這樣,但祇是限定在那一個執行緒而已) 這樣可能要載入dll吧?! 我是用BCB6.0 可以請問各位前輩,這樣程式要怎麼寫呢? 最好是有原始碼可以參考 ^.^ 但不要太複雜啦 因為我剛學BCB不久 順便可以提示一下BCB裡的"hot key"要怎麼用嗎 很感謝各位前輩的解答 謝謝!
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-10 22:41:25 IP:218.164.xxx.xxx 未訂閱
你把問題想複雜了, 其實 Win32 API 就有現成的函數可呼叫, 請叫出 BCB 的 Windows SDK hlep, 以查詢 RegisterHotKey, UnRegisterHotKey. 用起來十分方便. Jesse Chan
------
Jesse Chan
bluechanel
一般會員


發表:7
回覆:15
積分:4
註冊:2003-03-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-10 23:34:38 IP:218.165.xxx.xxx 未訂閱
@@ 真的是那樣嗎?! 原諒我笨笨的 RegisterHotKey的用法還是看的模模糊糊的 請問哪邊有BCB的熱鍵實例可以給我參考一下的? 我看過好幾篇文章都寫說要跨程式使用熱鍵 只能用HOOK啊 RegisterHotKey 可以辦到嗎 >.< 假設我在玩一個遊戲 想用熱鍵呼叫外掛的某個功能 是這樣的意思!! 感謝您的回答~
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-11 00:01:14 IP:218.164.xxx.xxx 未訂閱
BOOL RegisterHotKey ( HWND hWnd, // window to receive hot-key notification int id, // identifier of hot key UINT fsModifiers, // key-modifier flags UINT vk // virtual-key code ); 第一個參數為當按下 hotkey 時的處理程式碼所在的 handle, 第二個參數是這個 hotkey 的 ID, 你可以自取, 但注意不要重覆, 第三個參數可設為 MOD_ALT MOD_CONTROL MOD_SHIFT Either 的組合, 如果你的 hotkey 是複合鍵, 如 Ctrl-H, 則你必須設定這個 flag, 第四個參數為 hotkey 的 virtual key code, 可參閱 help, 我不多作說明 假設你要把 Ctrl-Alt-H 設為 ID 為 1 的 hotkey 在 Form1 作處理, 則寫成 RegisterHotKey(Form1->Handle, 1, MOD_CONTROL | MOD_ALT, 0x48); 則你的 Form1 的 WindowProc 就可收到 WM_HOTKEY, 它的 WParam 所傳入的值為 ID, 所以你就可以作處理了, 程式結束前記得 UnRegisterHotKey(Form1->Handle,1); 這已經足夠你使用, 除非你要作鍵盤側錄程式, 不然不須用到 hook. Jesse Chan
------
Jesse Chan
bluechanel
一般會員


發表:7
回覆:15
積分:4
註冊:2003-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-11 00:26:25 IP:218.165.xxx.xxx 未訂閱
很感謝您的回答 浪費您許多寶貴的時間了!! 謝謝~
bluechanel
一般會員


發表:7
回覆:15
積分:4
註冊:2003-03-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-11 19:38:39 IP:218.165.xxx.xxx 未訂閱
>.< 抱歉 又發生問題了 偶在VB寫的起來 BCB不管怎麼寫都編譯錯誤 問題好像是在WindowProc上面 試了一個晚上了 即使成功編譯過去 也都是跟想的不一樣的結果 ~"~ 是要subclass嗎?! 可以請您寫給我WindowProc那部分的源碼給偶參考看看嗎 非常感恩~
bluechanel
一般會員


發表:7
回覆:15
積分:4
註冊:2003-03-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-12 20:36:44 IP:218.165.xxx.xxx 未訂閱
自己想到辦法解決 不用回文了!! THX!
系統時間:2024-04-20 10:17:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!