Entwickler-Ecke

Dateizugriff - Starten von Exe-Dateien


FrankKaden - Fr 27.01.17 14:42
Titel: Starten von Exe-Dateien
Hallo zusammen,

folgendes Problem stellt sich:

Es gibt einen Pfad O:\Oberstufe_1
darin befinden sich eine Datei Abitur1.exe und viele weitere XML-Dateien.
und es gibt einen Pfad O:\Obertsufe_2
darin liegen die Dateien Abitur2.exe und ebenfalls viele weitere XML-Dateien.

Ich habe ein kleines Delphi-Programm geschrieben, das die Dateien Abitur1.exe und
Abitur2.exe startet. Das klappt soweit. Mein Delphi-Programm befindet sich im Pfad O:\Projekt.

Die beiden Dateien Abitur1.exe und Abitur2.Exe öffnen ihrerseits aber über ein
eigenes Auswahl-Menü die XML-Dateien. Diese beiden EXE-Dateien stammen nicht von mir.
Startet man die beiden EXE-Dateien "per Hand" direkt im Pfad O:\Oberstufe_1 funktioniert auch das.

Führe ich aber mein Delphi-Programm im Pfad O:\Projekt aus,
dann werden zwar die EXE-Dateien ausgeführt, auch die Auswahl einer XML-Datei im Auswahlmenü erfolgt
noch, jedoch wird die XML-Datei nicht geöffnet. Es erscheint sogar eine Fehlermeldung der
EXE-Datei, dass die zugehörige XML-Datei nicht vorhanden ist.

Kopiere ich mein Delphi-Programm in den Pfad O:\Oberstufe_1 hinein, funktioniert allerdings alles
wie gewünscht. Ich möchte aber das Delphi-Programm nicht in beiden Oberstufen-Pfade legen.

Der Quellcode des Dateiaufrufs in meinem Delphi-Programm lautet:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure Tfauswahl.labi_extern11Click(Sender: TObject);
begin
 ShellExecute(Application.Handle,
              'open',
              PChar('O:\Oberstufe_11\Abitur1.exe'),
              nilnil, SW_ShowNormal);
end;

Wie kann ich dem ShellExecute-Prozess beibringen, dass der Arbeitspfad
für diese Datei O:\Oberstufe_1 heißt.

So richtig begreife ich aber den hier auftretenden Fehler nicht.

Habt Ihr einen Tipp für mich?

VG
Frank

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


jasocul - Fr 27.01.17 15:03

Herzlich Willkommen.
Google (Suche bei Google DELPHI SHELLEXECUTE) liefert gleich als ersten Treffer den richtigen Tipp.
Dein zweites Nil musst du durch das Arbeitsverzeichnis ersetzen.


FrankKaden - Fr 27.01.17 15:59

Hallo jasocul,

vielen Dank für die schnelle Antwort.
Klasse, ja so funktioniert es.

VG
Frank