Mein Programm ist ein Application Server also es hat keine Ausgabe (außer logfile)
und
TCP/
IP
Hy,
kannst du dein Programm nicht einfach aus einem Dienst heraus aufrufen ??
ungefähr so:
Delphi-Quellcode:
repeat
if not IsExeRunning(MeinProgramm) then
begin
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb:=Sizeof(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=SW_SHOWNORMAL; //SW_SHOW, SW_HIDE, SW_SHOWNORMAL;
lstrcpy(szCmd, PChar(MeinProgramm));
if CreateProcess(nil, szCmd, nil, nil, False, CREATE_NEW_CONSOLE, nil,
nil, StartupInfo, ProcessInfo) then begin
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
until stopped
Ich hab auch ein
TCP/
IP Programm für den Datenaustausch mit einem Service. Das Programm starte ich einfach wie oben gezeigt aus dem Dienst heraus. Bis Windows XP ist das vollkommen unproblematisch. Ab Vista geht es auch, allerdings müssen einige Punkte beachtet werden, sonst erscheint die Meldung "Erkennung interaktiver Dienste" in der Taskleiste.
kuba