![]() |
Dienst aus Konsolenprogramm
Ich habe ein Konsolenprogramm und möchte jetzt eine Dienst daraus machen.
Wie mache ich das |
AW: Dienst aus Konsolenprogramm
Für erstens gibt es keine pauschale Lösung. Dein Konsolenprogramm wartet sicher auf Eingaben, das ist beim Dienst so nicht möglich da dieser im Hintergrund aggiert, auch wenn kein Benutzer angemeldet ist.
Für 2tens: Eröffne dazu bitte ein eigenes Thema. Bei uns gilt pro Thema nur eine Frage da sonst am Ende keiner mehr weiß welche Antwort zu welcher Frage gehört und auch andere mit gleichem Problem später über die Suche nur schwer, die hoffentlich hier gepostete, Lösung finden. Zudem hat es den Vorteil das du für jede Frage auch einen aussagekräftigen Titel wählen kannst so das man Anhand des Titels schon die Frage erahnen kann. |
AW: Dienst aus Konsolenprogramm
[OT]
@franktron kleine Korrektur Deiner Signatur.
Delphi-Quellcode:
Dem Fisch ist es egal von wem er gefressen wird.
While not Tux.Satt do
begin Fisch:=TFisch.Create; Tux.Essen(Fisch); Fisch.Free; end; Daher sollte TuxEssenFisch keine Methode des Fisches sein. :wink: [/OT] Grüße Klaus |
AW: Dienst aus Konsolenprogramm
Mein Programm ist ein Application Server also es hat keine Ausgabe (außer logfile)
und TCP/IP |
AW: Dienst aus Konsolenprogramm
Zitat:
kannst du dein Programm nicht einfach aus einem Dienst heraus aufrufen ?? ungefähr so:
Delphi-Quellcode:
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.
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 kuba |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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 by Thomas Breitkreuz