Einzelnen Beitrag anzeigen

Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Dienst aus Konsolenprogramm

  Alt 14. Jun 2010, 11:26
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
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat