小弟在网上找了好多文章,基本也都说明从任务管理器的应用程序栏中是以对程序发出 SendMessage(HWND, WM_CLOSE, 0, 0)的结束程序,而且也用全局 HOOK 成功响应这个事件,但是不知道怎么阻止被关掉,想求一段程序代码,请大侠帮忙。小弟成功 HOOK 到 WM_CLOSE 的源码附上:library wm_msg;uses
SysUtils,
Classes,
u_msg in 'u_msg.pas';{$R *.res}exports
InstMsg,
UnInstMsg;begin
end./------------------------------------------------------------------unit u_msg;interfaceuses
Windows, Messages, Dialogs;var
hhk: HHOOK; function InstMsg: Boolean; stdcall; export;
function UnInstMsg: Boolean; stdcall; export;
function HookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;implementationfunction InstMsg: Boolean; stdcall; export;
begin
hhk:= SetWindowsHookEx(WH_GETMESSAGE, HookProc, HINSTANCE, 0);
if hhk <> 0 then Result:= True else Result:= False;
end;function UnInstMsg: Boolean; stdcall; export;
begin
Result:= UnHookWindowsHookEx(hhk);
end;function HookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
begin
Result:= CallNextHookEx(hhk, nCode, wParam, lParam);
case nCode of
HC_ACTION:
begin
if PMsg(lParam)^.message = WM_CLOSE then ShowMessage('获取消息事件');
end;
end;
end;end.求怎样阻止 WM_CLOSE 的 Delphi 源码,请大侠帮帮偶。
SysUtils,
Classes,
u_msg in 'u_msg.pas';{$R *.res}exports
InstMsg,
UnInstMsg;begin
end./------------------------------------------------------------------unit u_msg;interfaceuses
Windows, Messages, Dialogs;var
hhk: HHOOK; function InstMsg: Boolean; stdcall; export;
function UnInstMsg: Boolean; stdcall; export;
function HookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;implementationfunction InstMsg: Boolean; stdcall; export;
begin
hhk:= SetWindowsHookEx(WH_GETMESSAGE, HookProc, HINSTANCE, 0);
if hhk <> 0 then Result:= True else Result:= False;
end;function UnInstMsg: Boolean; stdcall; export;
begin
Result:= UnHookWindowsHookEx(hhk);
end;function HookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
begin
Result:= CallNextHookEx(hhk, nCode, wParam, lParam);
case nCode of
HC_ACTION:
begin
if PMsg(lParam)^.message = WM_CLOSE then ShowMessage('获取消息事件');
end;
end;
end;end.求怎样阻止 WM_CLOSE 的 Delphi 源码,请大侠帮帮偶。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货