这里补充一下第一篇文章中提到的拦截关机消息
Delphi消息拦截:http://blog.****.net/cwpoint/archive/2011/04/05/6302314.aspx
下面我再介绍一种在控制台程序中拦截关机消息的方法。
使用SetConsoleCtrlHandler函数。经过测试这个函数不能取消操作。
- program Project1;
- {$APPTYPE CONSOLE}
- uses
- SysUtils,
- Windows,
- Messages;
- function EndMsg(fdwCtrlType: Cardinal): Boolean; stdcall;
- begin
- Result := False;
- case fdwCtrlType of
- CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT:
- MessageBox(0, PChar('注销、重启、关机'), PChar(''), 0);
- end;
- end;
- begin
- if not SetConsoleCtrlHandler(@EndMsg, True) then
- Exit;
- while True do
- Sleep(1000);
- end.
http://blog.****.net/cwpoint/article/details/6373025