⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit3.pas

📁 定时关机程序
💻 PAS
字号:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, SvcMgr, ExtCtrls;

type
  TService2 = class(TService)
    Timer1: TTimer;
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    procedure ServiceShutdown(Sender: TService);
    procedure ServicePause(Sender: TService; var Paused: Boolean);
    procedure ServiceExecute(Sender: TService);
    procedure ServiceContinue(Sender: TService; var Continued: Boolean);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  Service2: TService2;

implementation
uses Unit1;
{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service2.Controller(CtrlCode);
end;

function TService2.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TService2.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  if Assigned(Form1) then
  begin
     Form1.Timer1.Tag:=10;
     form1.Close;
  end;  

  Stopped := True;
end;

procedure TService2.ServiceStart(Sender: TService; var Started: Boolean);
begin
//服务开始运行
//Svcmgr.Application.CreateForm(TForm1, Form1);
Timer1.Enabled:=True;
end;

procedure TService2.ServiceShutdown(Sender: TService);
begin
  Status := csStopped;
  ReportStatus();
end;

procedure TService2.ServicePause(Sender: TService; var Paused: Boolean);
begin
Paused := True;
end;

procedure TService2.ServiceExecute(Sender: TService);
begin
  while not Terminated do
  begin
    Sleep(10);
    ServiceThread.ProcessRequests(False);
  end;
end;

procedure TService2.ServiceContinue(Sender: TService;
  var Continued: Boolean);
begin
  while not Terminated do
  begin
    Sleep(10);
    ServiceThread.ProcessRequests(False);
  end;
end;

procedure TService2.Timer1Timer(Sender: TObject);
var
  DC:HDC;
begin
   Timer1.Enabled:=False;
   if not Assigned(Form1) then
      Form1:=TForm1.Create(nil);
   //form1.Show;
  DC:=GetDC(0);
  Textout(DC,10,10,'定时关机或重启服务启动',length('定时关机或重启服务启动'));
  ReleaseDC(0,DC);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -