我在运行程序时使用form1.hide,来在运行时隐藏窗体,在没有关闭程序时,我想关闭计算机,可正是由于这个程序,使得我不能关机,请问这是为什么?

解决方案 »

  1.   

    的确有这样的情况那时我的写法是抓消息判断是不是关机的消息,,如果是,,APPLICATION.TR.....
      

  2.   

    2000下应该不会出现这种问题吧你用下面的程序看看
    var
       MyHandle:HWND;
    begin
       MyHandle := FindWindow(nil,yourwindowcaption);//yourwindowcaption为程序窗体的caption
       PostMessage(MyHandle,wm_Close,0,0);
    end;
      

  3.   

    使用DELPHI5的NMHTTP控件的程序,会导致在2000,XP下不能关机。
      

  4.   

    在windows系统关闭时会向每一个应用程序发一个关机的消息,那么我们的程序只要捕获这一消息
    后结束程序,windows系统就可以关机了具体方法如下:
    先申明函数: procedure WMQueryEndSession
    (var Msg:TMessage);messageWM_QueryEndSession;再加上如下代码:
    procedure TForm1.WMQueryEndSession(var Msg: TMessage); 
    begin 
    Msg.Result:=1;//表示程序可以关机,如果反馈回来的消息值为0,那么WIN9X就不能关机。
    close;//结束程序
    end;