墨
墨剑
Unregistered / Unconfirmed
GUEST, unregistred user!
我时这样用的.
procedure TForm1.FormCreate(Sender: TObject);
begin
HkEdees:=SetWindowsHookEx(WH_CBT, @GetSysMsgProc, Hinstance, 0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHookWindowsHookEx(HkEdees);
end;
function GetSysMsgProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
{在此处设了断点,外部程序启动,关闭都没有触发,怎么回事?????}
Result:= CallNextHookEx(0, nCode, wParam, lParam);
end;
是不是xp不行呢?
比如我用键盘钩子
HkEdees:=SetWindowsHookEx(WH_KEYBOARD, @GetSysMsgProc, Hinstance, 0);
也勾不住在其他程序中的按键.但是如果改成:
HkEdees:=SetWindowsHookEx(13, @GetSysMsgProc, Hinstance, 0);
就能钩子其他程序中的按键了..
这到底是怎么回事呢? 难道windows定义的不对么? 希望做过这块的高手看看
procedure TForm1.FormCreate(Sender: TObject);
begin
HkEdees:=SetWindowsHookEx(WH_CBT, @GetSysMsgProc, Hinstance, 0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHookWindowsHookEx(HkEdees);
end;
function GetSysMsgProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
{在此处设了断点,外部程序启动,关闭都没有触发,怎么回事?????}
Result:= CallNextHookEx(0, nCode, wParam, lParam);
end;
是不是xp不行呢?
比如我用键盘钩子
HkEdees:=SetWindowsHookEx(WH_KEYBOARD, @GetSysMsgProc, Hinstance, 0);
也勾不住在其他程序中的按键.但是如果改成:
HkEdees:=SetWindowsHookEx(13, @GetSysMsgProc, Hinstance, 0);
就能钩子其他程序中的按键了..
这到底是怎么回事呢? 难道windows定义的不对么? 希望做过这块的高手看看