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 1053
er 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