Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prog das Anwendungen als Dienst startet (https://www.delphipraxis.net/66488-prog-das-anwendungen-als-dienst-startet.html)

Baeuerle 30. Mär 2006 11:18


Prog das Anwendungen als Dienst startet
 
Hallo,

ich möchte ein Tool schreiben, dass beliebige Anwendungen als Dienst startet. Hierzu benötige ich etwas Hilfe.

Meine Ideee:
Delphi-Quellcode:
procedure RegisterService(Name, DisplayName, ExeName: PChar);
var hSCM, hservice, i: Integer;
begin
hSCM:=OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if hSCM=0 then raise Exception.Create(SyserrorMessage(GetLastError));
hService:=CreateService(hSCM,Name,DisplayName,
                        SERVICE_START OR
                        SERVICE_QUERY_STATUS OR
                        _DELETE,
                        SERVICE_WIN32_OWN_PROCESS,
                        SERVICE_AUTO_START,
                        SERVICE_ERROR_NORMAL,
                        ExeName,
                        NIL, NIL, NIL, NIL,NIL);
if hService = 0 then
 begin
 CloseServiceHandle(hSCM);
 raise Exception.Create(SyserrorMessage(GetLastError));
 end;
CloseServiceHandle(hSCM);
CloseServiceHandle(hService);
end;
Der Dienst wird zwar installiert und unter den Windows Diensten angezeigt. Wenn ich versuche diesen zu starten bekomme ich aber die Fehlermeldung:

1053 Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung.

So jetzt seid Ihr gefragt, wo liegt das Problem??

Danke Baeuerle

Hudel1965 30. Mär 2006 11:27

Re: Prog das Anwendungen als Dienst startet
 
Hallo,

eine normaler Dienst hat Einsprünge für Start, Stop, Pause und Fortsetzen.

Dies fehlt einem normalen Program, daher kann der Win-Dienst Manager auch nicht den Dienst starten. Es gibt aber Utilities die aus einem beliebigen Programm einen Dienst machen.

Diese werden wohl diese Einsprünge nachbilden.

Gruß

Hudel

Baeuerle 30. Mär 2006 11:43

Re: Prog das Anwendungen als Dienst startet
 
Hm,

und wie kann ich solche Einsprünge simulieren bzw nachbilden? Das scheint wohl die Frage zu sein.

Hudel1965 30. Mär 2006 11:48

Re: Prog das Anwendungen als Dienst startet
 
Such doch nach mal nach einem der Utilities, eventuell gibt es eins das im Quellcode vorliegt. Vielleicht kannst du dir dort abschauen wie es gemacht wird. Das Problem wird aber sein, daß die Utilities den EXE File verändern müssen um die Dienstfunktionalität nachzubilden und dies wirst du auch machen müssen.

Gruß

Hudel


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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