示例代码:
//全局键盘钩子消息处理函数
function KeyHookProc(nCode:IntegerwP:WPARAMlP:LPARAM):LRESULTstdcall
var
pEvt: TEventMsg
vKey: Cardinal
begin
if (nCode = HC_ACTION) then begin
vKey := 0
case wP of
WM_SYSKEYDOWN, WM_KEYDOWN:
begin
pEvt := PEventMsg(LP)^
vKey := LOBYTE(pEvt.message)
case vKey of
......
end
end
end
WM_SYSKEYUP, WM_KEYUP:
end
end
result := CallNextHookEx(hKeyHook, nCode, wP, lP)
end
安装钩子:
hKeyHook := SetWindowsHookEx(WH_KEYBOARD_LL, @KeyHookProc, hInstance, 0)
(Delphi中带了)有点类似于DOS下的中断法度榜样,钩子函数可以监控体系某一类的事宜,像键盘和鼠标。在钩子函数里可以填写本身的代码。可以用以下几个函数来安装、卸载钩子:SetWindowsHookEx、CallNextHookEx、UnhookWindowsHookEx。具体的可看Win32赞助。
1.有全局热键,即使本进程不在前台,也可以响应热键。2.(全局)钩子可以“钩”住系统发往所有别的进程的消息,经自己的钩子函数处理后,可以选择是把该消息继续传递还是就此丢弃。
3.给别的进程发消息倒不需要钩子,
SendMessage/PostMessage通常就能满足。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)