Einzelnen Beitrag anzeigen

Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#7

Re: Dienst-Management 4 dummies

  Alt 19. Nov 2004, 09:51
Guten Morgen!

gestern war ich leider schon weg, dehalb kam da keine Antwort mehr. Ich hab das tool fürs erste fertig bekommen dank dir Sakura!

so siehts aus:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uNTServiceControl, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Panel1: TPanel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);

// procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//
// Service State -- for CurrentState
//
(*
  {$EXTERNALSYM SERVICE_STOPPED}
  SERVICE_STOPPED                = $00000001;
  {$EXTERNALSYM SERVICE_START_PENDING}
  SERVICE_START_PENDING          = $00000002;
  {$EXTERNALSYM SERVICE_STOP_PENDING}
  SERVICE_STOP_PENDING          = $00000003;
  {$EXTERNALSYM SERVICE_RUNNING}
  SERVICE_RUNNING                = $00000004;
  {$EXTERNALSYM SERVICE_CONTINUE_PENDING}
  SERVICE_CONTINUE_PENDING      = $00000005;
  {$EXTERNALSYM SERVICE_PAUSE_PENDING}
  SERVICE_PAUSE_PENDING          = $00000006;
  {$EXTERNALSYM SERVICE_PAUSED}
  SERVICE_PAUSED                = $00000007;
*)


procedure TForm1.Button1Click(Sender: TObject);
begin
 ServiceStop('', 'Messenger', true)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ServiceStart('', 'Messenger', true)
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
case ServiceGetStatus('', 'Messenger') of

  0: Panel1.Caption := 'Status 0';

  1: begin
        Panel1.Caption := 'gestoppt';
        Panel1.Color := clred;
     end;

  2: begin
       Panel1.Caption := 'wird gestartet';
       Panel1.Color := clyellow;
      end;

  3: Showmessage('3');

  4: begin
       Panel1.Caption := 'läuft';
       Panel1.Color := clGreen;
     end;
  5: Panel1.Caption := 'SERVICE_CONTINUE_PENDING'; //was auch immer das ist
  6: Panel1.Caption := 'SERVICE_PAUSE_PENDING'; //was auch immer das ist

  7: begin
       Panel1.Caption := 'pausiert';
       Panel1.Color := clteal;
     end;

  else
    Panel1.Caption := 'unbekannter Status';
  end;
end;
Es wird zuerst überprüft ob der Dienst (später die bestimmten Dienste) läuft und dann kann bequem gestartet oder gestoppt werden. Die Pause und den Neustart will ich noch einpflegen, sowie abhängige Dienste autoatisch mitstarten.

Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat