AW: fremdes Programm aufrufen
@sinspin
Das aufzufende Programm liegt in einem Verzeichnis "unter" dem Verzeichnis meines Programms. Dort habe ich auch ein minimals Testprogramm abgelegt, dass ich problemlos (nach entsprechender Änderung des Aufrufstrings) starten kann. |
AW: fremdes Programm aufrufen
Meine Empfehlung: Rückgaben von ShellExecute(Ex) auswerten und/oder mit Process Monitor überwachen, was genau passiert und mit welchen Ergebnissen. Das ist besser als Rumraten.
Grüße Dalai |
AW: fremdes Programm aufrufen
Zitat:
|
AW: fremdes Programm aufrufen
Joar, Rückgaben sollte muß man eh immer auswerten
und natürlich immer schön mit vollständigen/absoluten Pfaden arbeiten. z.B. die Open-/SaveDialoge ändern standardmmäßig das Arbeitsverzeichnis (und wer weiß wer sonst noch ... bzw. kann auch dein Programm bereit mit einem abweichendem Arbeitsverzichnis gestartet worden sein) |
AW: fremdes Programm aufrufen
Hallo,
erzeuge eine Bat-Datei mit dem Inhalt: Start Dein-Programm und rufe mal dies Bat-Datei in Deinem Programm auf. |
AW: fremdes Programm aufrufen
Zitat:
|
AW: fremdes Programm aufrufen
Ich habe jetzt alles in ein winziges Testprojekt gepackt und verwende
statt ShellExecuteEx jetzt ShellExecute, wg. Rückgabewert. Wie schon berichtet, kann ich ein eigenes Testprogramm erfolgreich per ShellExecute starten und bekomme als Rückgabewert 42, d.h. über 32 also erfolgreicher Start. Beim eigentlich zu starteten Programm bekomme ich als Rückgabewert auch 42, aber das Programmfenster wird nicht (ev. nur sehr sehr kurz) angezeigt. Zusätzlich habe ich auch den MS Processmonitor mitlaufen lassen, falls das hilf, kann ich gerne Screenshots o.ä. posten. Ganz am Ende der Liste sehe ich : Thread Exit, Process Exit. Das interpretiere ich als einen sofortigen Abbruch des zu startenden Programms. Fragt sich nur: warum? |
AW: fremdes Programm aufrufen
Mache Dir bitte eine Batchdatei für den Aufruf des externen Programmes:
Code:
Diese Batchdatei rufst Du nun per Shellexecute auf, Pause sorgt dafür, dass das Fenster der Konsole offen bleibt. Damit kannst Du dann alle Fehlerausgaben des aufzufrufenden Programmes bzw. der Konsole sehen.
Programmaufruf, so wie per ShellExecute
pause Per Tastendruck schließt sich das Fenster dann. Wenn Du dann alle eventuell auftretenden Fehler behoben hast, kannst Du den Programmaufruf so, wie er in der Batchdatei erfolgreich ausgeführt wurde, per ShellExecute aus Deinem Programm heraus machen, ohne das Zwischenschalten der Batchdatei. |
AW: fremdes Programm aufrufen
Habe einen batchfile erstellt. Doppelklick auf den batchfile
startet wie gewünscht das fremde Programm cmd.exe bleibt stehen und wartet auf einen Tastendruck, es gibt keine Fehlermeldungen. Beim Aufruf des Batchfiles per shellexecute erscheint cmd.exe und wartet auf einen Tastendruck, keine Fehlermeldungen aber auch kein Fremdprogramm. |
AW: fremdes Programm aufrufen
Dann solltest du die CMD mal das aktuelle Arbeitsverzeichnis ausgeben lassen:
Code:
und vielleicht generell auf das
echo %cd%
REM oder einfach nur cd
Code:
zu Beginn der Batch verzichten, sofern noch nicht passiert. Es muss ja einen Unterschied zwischen den beiden Startwegen geben.
@echo off
Grüße Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz