AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi CreateService funktioniert bei mir nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

CreateService funktioniert bei mir nicht richtig

Ein Thema von Angel4585 · begonnen am 17. Okt 2005 · letzter Beitrag vom 17. Okt 2005
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

CreateService funktioniert bei mir nicht richtig

  Alt 17. Okt 2005, 08:31
Hallo Leutz,

Ih hab ein kleines Problem mit der CreateService Funtion.

Eigentlich müsste das ja so ohne Probleme funktionieren:

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
const
SERVICE_NAME = 'dienst2';
DISPLAY_NAME = 'TestServiceX';
lpszBinaryPathName = 'C:\WINNT\system32\dienst2.exe';//Datei existiert!
var
schService : SC_Handle;
schSCManager : SC_Handle;
begin
schSCManager:=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS);
if schSCManager = 0 then
 raise Exception.Create(SysErrorMessage(GetLastError));
schService := CreateService(
               schSCManager, // SCManager database
               SERVICE_NAME, // name of service
               DISPLAY_NAME, // service name to display
               SERVICE_ALL_ACCESS, // desired access
               SERVICE_WIN32_OWN_PROCESS, // service type
               SERVICE_AUTO_START, // start type
               SERVICE_ERROR_NORMAL, // error control type
               lpszBinaryPathName, // service's binary
               nil, // no load ordering group
               nil, // no tag identifier
               nil, // no dependencies
               nil, // LocalSystem account
               nil); // no password

if schService <> 0 then
 ShowMessage(DISPLAY_NAME+' installed SUCCESSFUL.')
else raise Exception.Create(SysErrorMessage(GetLastError));
CloseServiceHandle(schService);
end;
Allerdings startet der Service nicht wenn ich ihn starten will. Wenn ich hingegen mit in der eingabeaufforderung mit "dienst2 /install" installiere dann funktioniert es problemlos.

Ausserdem kann ich den Service wenn ich über die Delphifunktion installiere nicht deinstallieren. Mein rechteckiger Freund bringt mmir denn die Meldung das der Service nicht installiert ist, obwohl er bei den Diensten klar sichtbar ist und auch versucht zu starten.

NEED HELP!!

Danke schonmal im Vorraus.

Edit: Beim installieren mit CreateService wird das ShowMessage(DISPLAY_NAME+' installed SUCCESSFUL.') angezeigt.
Beim starten kommt dann die Meldung "Der Deinst TestServiceX kann nicht auf "Lokaler Computer" gestartet werden.
Fehler 1053er Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung"
Nach dieser Meldung steht bei den Diensten dann nurnoch Stundenlang das der Dienst geladen wird, was allerdings nie geschieht
Martin Weber
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: CreateService funktioniert bei mir nicht richtig

  Alt 17. Okt 2005, 13:20
So..da jetzt mal keine Antwort kommt hab ich selber mal nachgeschaut.
Es gibt einige Artikel bei denen mein Problem behandelt wird, allerdings wird nie ne vernünftige Lösung für das Problem geboten.

Jetzt möchte ich einfach mal wissen ob jemand mit CreateService schonmal einen Dienst erfolgreich installiert hat und diesen dann auch ausführen konnte.
Martin Weber
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#3

Re: CreateService funktioniert bei mir nicht richtig

  Alt 17. Okt 2005, 14:32
Zitat von Angel4585:
Edit: Beim installieren mit CreateService wird das ShowMessage(DISPLAY_NAME+' installed SUCCESSFUL.') angezeigt.
Beim starten kommt dann die Meldung "Der Deinst TestServiceX kann nicht auf "Lokaler Computer" gestartet werden.
Fehler 1053er Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung"
Nach dieser Meldung steht bei den Diensten dann nurnoch Stundenlang das der Dienst geladen wird, was allerdings nie geschieht
Die Art des Fehlers lässt auf einen Fehler im Service schliessen (und hat wenig bis gar nichts mit CreateService zu tun)...
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

Re: CreateService funktioniert bei mir nicht richtig

  Alt 17. Okt 2005, 15:21
Nein ist definitiv nicht der Service
Begründung :

1. Ich habe den Service einmal mit der Eingabeaufforderung installiert und da funktionierte es.
2. Habe ich das Problem gerade gelöst:

Ich hatte anfangs :
Delphi-Quellcode:
CreateService(
               schSCManager, // SCManager database
               SERVICE_NAME, // name of service
               DISPLAY_NAME, // service name to display
               SERVICE_ALL_ACCESS, // desired access
               SERVICE_WIN32_OWN_PROCESS, // service type
               SERVICE_AUTO_START, // start type
               SERVICE_ERROR_NORMAL, // error control type
               lpszBinaryPathName, // service's binary
               nil, // no load ordering group
               nil, // no tag identifier
               nil, // no dependencies
               nil, // LocalSystem account
               nil); // no password
Richtig ist:
Delphi-Quellcode:
CreateService(
               schSCManager, // SCManager database
               SERVICE_NAME, // name of service
               DISPLAY_NAME, // service name to display

               SC_MANAGER_CONNECT or
               SC_MANAGER_ENUMERATE_SERVICE or
               SC_MANAGER_MODIFY_BOOT_CONFIG or
               SC_MANAGER_QUERY_LOCK_STATUS or
               STANDARD_RIGHTS_READ, // desired access

               SERVICE_WIN32_OWN_PROCESS, // service type
               SERVICE_AUTO_START, // start type
               SERVICE_ERROR_NORMAL, // error control type
               lpszBinaryPathName, // service's binary
               nil, // no load ordering group
               nil, // no tag identifier
               nil, // no dependencies
               nil, // LocalSystem account
               nil); // no password
da SERVICE_ALL_ACCESS nur für Admins gilt , ich aber nicht als Admin sondern als LocalSystem den Dienst starte muss ich die Zugriffe für LocalSystem angeben und die sind :

SC_MANAGER_CONNECT or
SC_MANAGER_ENUMERATE_SERVICE or
SC_MANAGER_MODIFY_BOOT_CONFIG or
SC_MANAGER_QUERY_LOCK_STATUS or
STANDARD_RIGHTS_READ

Auch wenn ich es letztendlich doch alleine geschafft habe sag ich nochmal danke
Martin Weber
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz