如题!

解决方案 »

  1.   

    用一个timer 不断检查屏幕保护程序。
    var
     bRun:boolean;
    begin
      SystemParametersInfo(SPI_GETSCREENSAVERRUNNING,
                           0,@bRun,0);
      if bRun then
         Application.Terminate;
    end;
      

  2.   

    映射WM_SYSCOMMAND事件,
    当Msg.wParam=SC_SCREENSAVER的时候
      

  3.   

    拦截屏保消息,做出相应的处理unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        CheckBox1: TCheckBox;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      protected
        procedure WMSYSCOMMAND (var Msg: TWMSYSCOMMAND);message WM_SYSCOMMAND ;
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.WMSYSCOMMAND(var Msg: TWMSYSCOMMAND);
    begin
      //捕获屏保消息
      if Msg.CmdType = SC_SCREENSAVE then    
        Application.Terminate;//结束运行
      inherited;
    end;end.
      

  4.   

    ShanShiMin(剑雨飘香),
    thank you very much!