Einzelnen Beitrag anzeigen

Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#1

Windows Service Startet nicht

  Alt 9. Jul 2019, 09:41
Hallo zusammen,

ich hab ein kleines Problem das mein Service nicht starten möchte. Es kommt die Fehlermeldung "Einige Dienste werden automatisch angehalten, wenn sie nicht von anderen Diensten oder Programmen verwendet werden.".

Ich hab ein TDatenModul aus AsteriskDataModul welche über SIP eine Schnittstelle die Telefonanlage überwacht. Welche beim Windows Start über einen Windows Service gehandelt werden soll. Ich bin ein kompletter Neuling was das Thema angeht. Weiß jemand wie ich ein DataModule in einem Service handel?

Mein Code sieht momentan wie folgt aus:

Code:
unit MyService;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.SvcMgr, Vcl.Dialogs, AsteriskDataModul;

type
  TTelephoneControl = class(TService)
    procedure ServiceAfterInstall(Sender: TService);
    procedure ServiceExecute(Sender: TService);
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
  private
    { Private-Deklarationen }
    AsteriskCallControlModule: Tbc_Asterisk_CallControl;
  public
    function GetServiceController: TServiceController; override;

    { Public-Deklarationen }
  end;

var
  TelephoneControl: TTelephoneControl; // ausAsteriskDataModul;

implementation

{$R *.dfm}

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

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

procedure TTelephoneControl.ServiceAfterInstall(Sender: TService);
begin
//
end;

procedure TTelephoneControl.ServiceExecute(Sender: TService);
begin
//
end;

procedure TTelephoneControl.ServiceStart(Sender: TService; var Started: Boolean);
begin
  if not(assigned(AsteriskCallControlModule)) then
  begin
    AsteriskCallControlModule := Tbc_Asterisk_CallControl.Create(nil);
  end;
  Started := True;
end;

procedure TTelephoneControl.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  FreeAndNil(AsteriskCallControlModule);
  Stopped := True;
end;

end.
  Mit Zitat antworten Zitat