Hallo Matthias,
Bat-Dateien im Service funktionieren schon, allerdings ist die Frage,
was in der Bat-Datei "drinnen" ist.
Ein Service läuft in einem eigenen unsichtbaren Desktop im System-Kontext,
wenn Deine Bat-Datei nun ein Programm mit
Gui startet wirst Du es nie
zu sehen bekommen.
Außerdem empfehle ich Dir, in Verbindung mit ShellExecute immer mit der
vollen Pfadangabe zu arbeiten.
Zum Debuggen Deines Services (z.B. Rückgabewert von ShellExecute anzeigen)
versuche mal Sakuras:
Delphi-Quellcode:
PROCEDURE DebugMsgBox(aMsgStr: AnsiString);
// (c) Sakura
// MessageBox aus non-interactive Anwendungen (z.B. Services, COM-Server,...)
BEGIN
MessageBox(0, PAnsiChar(aMsgStr), PAnsiChar('
DebugMessage from: ' +
srvFLAPPService.DisplayName), MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
END;
[EDIT]
Wenn Du ein
Service neustarten möchtest, kannst Du Dir dazu ja selbst eine kleine
Applikation schreiben. Sakura hat die fertige Tool-Sammlung
uNTServiceControl.pas in diesem Thread gepostet.
[/EDIT]