AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

fremdes Programm aufrufen

Ein Thema von joacim · begonnen am 25. Jul 2021 · letzter Beitrag vom 29. Jul 2021
Antwort Antwort
Seite 2 von 3     12 3      
joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
61 Beiträge
 
Delphi 6 Professional
 
#11

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 13:40
@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.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#12

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 15:03
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
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
691 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 16:30
@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.
Das glaube ich dir gerne. Trotzdem sind die beiden strings interessant wenn einmal von Explorer und einmal von deinen Programm aus aufgerufen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#14

AW: fremdes Programm aufrufen

  Alt 25. Jul 2021, 19:07
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)
$2B or not $2B
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: fremdes Programm aufrufen

  Alt 26. Jul 2021, 07:09
Hallo,
erzeuge eine Bat-Datei mit dem Inhalt:
Start Dein-Programm

und rufe mal dies Bat-Datei in Deinem Programm auf.
Heiko
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
131 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: fremdes Programm aufrufen

  Alt 26. Jul 2021, 11:15
mit Process Monitor überwachen
Den Vorschlag von Dalai kann ich nur unterstützen. Lass den Process Monitor mal mitlaufen und schau dir an, was die Exe genau macht.
  Mit Zitat antworten Zitat
joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
61 Beiträge
 
Delphi 6 Professional
 
#17

AW: fremdes Programm aufrufen

  Alt 28. Jul 2021, 08:07
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?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#18

AW: fremdes Programm aufrufen

  Alt 28. Jul 2021, 11:28
Mache Dir bitte eine Batchdatei für den Aufruf des externen Programmes:
Code:
Programmaufruf, so wie per ShellExecute
pause
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.

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.
  Mit Zitat antworten Zitat
joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
61 Beiträge
 
Delphi 6 Professional
 
#19

AW: fremdes Programm aufrufen

  Alt 28. Jul 2021, 14:20
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.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#20

AW: fremdes Programm aufrufen

  Alt 28. Jul 2021, 14:31
Dann solltest du die CMD mal das aktuelle Arbeitsverzeichnis ausgeben lassen:
Code:
echo %cd%
REM oder einfach nur
cd
und vielleicht generell auf das
Code:
@echo off
zu Beginn der Batch verzichten, sofern noch nicht passiert. Es muss ja einen Unterschied zwischen den beiden Startwegen geben.

Grüße
Dalai
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 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