![]() |
CreateService funktioniert bei mir nicht richtig
Hallo Leutz,
Ih hab ein kleines Problem mit der CreateService Funtion. Eigentlich müsste das ja so ohne Probleme funktionieren:
Delphi-Quellcode:
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.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; 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 1053:Der 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 |
Re: CreateService funktioniert bei mir nicht richtig
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. |
Re: CreateService funktioniert bei mir nicht richtig
Zitat:
|
Re: CreateService funktioniert bei mir nicht richtig
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:
Richtig ist:
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
Delphi-Quellcode:
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 :
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 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz