我做了一个自动隐藏到系统栏的软件。可是我发现一运行软件时不能自动关机,但又发现许多其它类似软件都可以。这是为什么?请指教。

解决方案 »

  1.   

    可能是你的软件的FORM的CLOSEQUERY时设成了FALSE,你得对关机消息进行一下处理,不然的话会出现这样的问题!
      

  2.   

    当用户退出Windows时,Windows系统会给程序发WM_QUERYENDSESSION 的系统消息,查询能否关机,程序返回TRUE为同意关机,FALSE为不同意关机
      

  3.   

    你自己关闭程序的时候,系统先触发OnCloseQuery,然后再触发OnClose,最后才是OnDestory。而系统关机则不触发OnClose事件,所以建议你把原来写在OnCloseQuery中的处理过程该写到OnClose中就没问题了。
      

  4.   

    我也写过一个这种程序,是这样实现的,当用户退出Windows时,Windows系统会给程序发WM_QUERYENDSESSION 的系统消息,查询能否关机,你拦截该消息
    将下面这段写在private的过程中
    procedure Tclient.WMQueryEndsession(var Msg: TMessage);
    begin
      client.Close;  //退出自己的程序
      Msg.Result := 1;  //让windows关机
    end;