但是線程鉤子可以在程序中制作!
當全局鉤子被觸發時,系統會去DLL中尋找相關的觸發函數!
而不是查看程序內部!所以如果妳把鉤子函數寫成
在您自己的程序中,只有當您的程序是活動窗口時,才能發送消息。
觸發了!但是如果讓程序失去輸入焦點,鉤子函數就會失效!
我很理解LZ的想法。做全局鉤子的時候不想要DLL庫。我認為
那是很不雅觀的!但Windows就是這麽做的。她成功了!沒有辦法改變!
如果妳想捕捉少量的鍵盤信息,妳可以使用註冊熱鍵的方法!
註冊函數BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,uintvk);
當妳註冊壹個熱鍵,只要熱鍵被觸發,它就會向妳設置的窗口發送消息!
參數:
HWnd是壹個接受熱鍵觸發消息的窗口。
Id:是熱鍵的標識符,為了讓熱鍵不沖突!
FsModifoers是熱鍵控制的壹部分!例如,您希望將熱鍵設置為
ALT+S,那麽fsModifoers就是ALT部分,她總是有三個標識符。
MOD_ALT
調制_移位
模式_贏
Vk是控制鍵以外的壹個鍵!
如果要截取多個控制鍵,比如alt+shift+s fsmodifiers,可以編寫
MOD_ALT|MOD_SHIFT,vk寫成s;