我想在关机时
执行我的一段程序
可是使用了FormCloseQuery事件时,自身是没有被关掉,但是windows内的其他一些程序给关掉了
我想获取关机的那个消息,而不让任何程序关闭,
说白了就是如果我的程序运行,就无法关机(点关机,不关闭任何程序)。
procedure WMPOWERBROADCAST (var msg:Tmessage);Message WM_POWERBROADCAST ;
procedure TF_close.WMPOWERBROADCAST(var msg:Tmessage);
begin  if D_1.ShowModal=mrOK then
  begin
        ShellExecute(Application.Handle, nil, PChar('http://163.com'), '', '', SW_NORMAL);
        Application.Terminate;
  end else
  // 关机
end;那位有办法,请多指教!

解决方案 »

  1.   

    关机时,WINDOWS会按顺序结束每一个应用程序,你不能改变你获得消息的顺序,所以截获消息来取消关机是不行的,得用其它方法
      

  2.   

    procedure wmQueryEndSession(var msg:Tmessage);message WM_QUERYENDSESSION;
    procedure wmQueryEndSession(var msg:Tmessage);
    begin
      msg.result:=0;
    end;这样试下?
      

  3.   

    uses ShellApi;ShellExecute(Handle,'open','http://www.csdn.net',nil,nil,SW_SHOW);