![]() |
Aus Dienst heraus ein anderes Konsolenprogramm starten
Moin,
da es ja per Scheduler möglich ist, denke ich das es auch möglich sein muss, das ein Dienst eine andere Applikation starten kann. Wenn ich nachfolgende Zeile in einer normalen Anwendung ausführen lasse, klappt es. In einem Dienst nicht.
Delphi-Quellcode:
shellexecute(application.Handle ,nil,pchar(_cmd),pchar(von),pchar(an),SW_HIDE);
Wer hat eine Idee? Gruss RL |
Re: Aus Dienst heraus ein anderes Konsolenprogramm starten
Ein Dienst kann doch normalerweise nicht mit dem Desktop intergieren. Da knallts schon bei einer simplen MessageBox :-)
Probier mal den Dienst mit "Datenaustausch zwischen Dienst und Desktop zulassen" zu aktivieren. |
Re: Aus Dienst heraus ein anderes Konsolenprogramm starten
Zitat:
Hintergrund: Ein ISDN-Capi Überwachungsproggi soll bei bestimmten Rufnummern ein .cmd aufrufen: net stop xyz - Dienst net start xyz - Dienst .... Gruss EL |
Re: Aus Dienst heraus ein anderes Konsolenprogramm starten
Moin emsländer,
und welchen Rückgabewert erhältst Du von ShellExecute? |
Re: Aus Dienst heraus ein anderes Konsolenprogramm starten
Zitat:
Gruss EL |
Re: Aus Dienst heraus ein anderes Konsolenprogramm starten
Doch es wird ausgeführt, nur nicht in deiner WindowsStation auf deinem default Desktop. ;) Der Dienst läuft nämlich in einer anderen (nicht interaktiven) WindowsStation ohne Desktop. Ein kleinen unvollständigen Abriss über die Begrifflichkeiten findest du hier:
![]() |
Re: Aus Dienst heraus ein anderes Konsolenprogramm starten
Zitat:
in den Ordner eine test.txt mit Inhalt ... blödsinn angelegt. dann eine kopiere.cmd mit Inhalt: copy test.txt test.old die sollte von dem Dienst aufgerufen werden. Wäre sie aufgerufen worden, hätte ich hinterher eine test.old gehabt..... war aber nicht Gruss Jörg |
Re: Aus Dienst heraus ein anderes Konsolenprogramm starten
Moin Jörg,
Zitat:
Wäre er Aufruf erfolgreich gewesen hätte das geklappt, und um zu ermitteln, warum das nicht erfolgreich war, könnte der Rückgabewert helfen, denn Aufgerufen wurde ShellExecute wohl (dass müsste Dir ja Dein Programm verraten). Probier einfach mal als ersten Parameter nicht Application.Handle, sondern 0 anzugeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 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-2025 by Thomas Breitkreuz