Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   *.Exe-Datei mit Programm öffnen (https://www.delphipraxis.net/50956-%2A-exe-datei-mit-programm-oeffnen.html)

Superior 3. Aug 2005 10:58


*.Exe-Datei mit Programm öffnen
 
Hallo,

ich möchte ein Programm mit Delphi 5 programmieren dass folgednermaßen aussehen soll:

Ich habe eine Form mit einem Button. Bei klick auf den Button soll eine Exe-Datei (Tester.exe) geöffnet werden, die sich im Unterordner 'Programme' befindet.
Ich habe es bisher mit folgendem Befehl versucht:

winexec (pchar('Programme/Tester.exe'),sw_shownormal)

Mit diesem Befehl öfnnet sich Tester.exe auch einwandfrei...
Allerdings: In dem Programm Tester.exe wird bei Button-klick auf eine *.txt-Datei zugegriffen. Klicke ich auf diesen Button wird mir als Fehlermeldung angezeigt:
'*.txt datei konnte nicht gefunden werden'
Diese Fehlermeldung tritt nur auf, wenn ich Tester.exe über dieses Programm öffne...

Versteht ihr das Problem?

Gibt es vielleicht einen anderen Befehl, mit dem man externe *.Exe-Dateien öffnen kann, ohne dass dieses Fehlerproblem auftritt?

Danke schon einmal im Vorraus

mfg
Superior

NicoDE 3. Aug 2005 11:12

Re: *.Exe-Datei mit Programm öffnen
 
Tester.exe hat in beiden Fällen ein unterschiedliches Arbeitsverzeichnis.

ichbins 3. Aug 2005 11:18

Re: *.Exe-Datei mit Programm öffnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
wahrscheinlich liegt das daran, das winexec das Programm mit einem falschen Arbeitsverzeichniss lädt ("ausführen in"). Mach es mit einem anderen Befehl, der das unterstützt:

Delphi-Quellcode:

fmxutils.executefile('Programme\tester.exe','','Programme\',sw_shownormal);
die fmxutils.pas befindet sich nicht im Lib-Verzeichniss. Suche mit der Windows-Suche danach und kopiere die gefundene Datei ins Lib-Verzeichniss. Ich hab' mal meine fmxutils (D3 / D7) angehängt.

Superior 3. Aug 2005 11:31

Re: *.Exe-Datei mit Programm öffnen
 
Hallo,

danek erstmal für dei schnelle Antwort.

Ich habe die fmxutils.pas Datei mit der Windows-Suchfunktion gesucht und im Ordner

C:\Programme\Borland\Delphi5\Demos\Doc\Filmanex

gefunden.
Ich habe die Datei in C:\Programme\Borland\Delphi5\lib
kopiert.
Dann habe ich Delphi 5 neu gestartet, doch das Programm funktioniert immer noch nicht...

Habe ich etwas falsch gemacht?

Danke für Antwort

mfg
Superior

Olli 3. Aug 2005 11:48

Re: *.Exe-Datei mit Programm öffnen
 
Bitte kein WinExec() benutzen. Das existiert nur zur Kompatibilität mit Win16! MSDN-Library durchsuchenShellExecute() ist die moderne Alternative.

Lannes 3. Aug 2005 12:00

Re: *.Exe-Datei mit Programm öffnen
 
Hallo,

wie ruft Du die *.txt-Datei auf, Pfad mit angegeben?
Wenn nein, dann hast Du die Probleme mit den unterschiedlichen Arbeitsverzeichnissen.

Superior 3. Aug 2005 12:41

Re: *.Exe-Datei mit Programm öffnen
 
Die *.txt Datei rufe ich mit folgendem Befehl auf:

listbox1.LoadFromFile('Datei.txt')

Bringt euch das weiter in der Problemlösung?

Wie ist das mit Shellexecute, sagt mir irgendwie nix...

mfg
Superior

Chegga 3. Aug 2005 12:50

Re: *.Exe-Datei mit Programm öffnen
 
Hi,

les dir bitte mal diesen Beitrag hier durch,
danach ist einiges klarer. :zwinker:
*Klick*
Zitat:

Wie ist das mit Shellexecute, sagt mir irgendwie nix...
:shock:

Zitat:

Zitat von Superior
Die *.txt Datei rufe ich mit folgendem Befehl auf:

Delphi-Quellcode:
listbox1.LoadFromFile('Datei.txt')

:shock:
Ganz sicher nicht. :wink:
Wenn dann:
Delphi-Quellcode:
ListBoxX.Items.LoadFromFile('Datei.txt');
MfG Marc

Luckie 3. Aug 2005 13:01

Re: *.Exe-Datei mit Programm öffnen
 
Zitat:

Zitat von Superior
Die *.txt Datei rufe ich mit folgendem Befehl auf:

listbox1.LoadFromFile('Datei.txt')

Tja, da sucht er sie im aktuellen Arbeitsverzeichnis, aber wie Nico dir schon gesagt hat, ist dies für deine aufgerufene Anwendung nicht mehr das Anwendungsverzeichnis.

Gib den absoluten Pfad zur Datei an. Mit ParamStr(0) bekommst du Anwendungspfad und Anwendungsname deiner Exe raus.

Superior 3. Aug 2005 16:16

Re: *.Exe-Datei mit Programm öffnen
 
Ja sorry, habe mich in der Eile nur verschrieben. Natürlich öffne ich die Datei mit:

ListBox1.Items.LoadFromFile('Datei.txt');

...

mfg
Superior

Lannes 3. Aug 2005 16:41

Re: *.Exe-Datei mit Programm öffnen
 
Hallo,

klar, da hätte auch Delphi schon gemeckert :?
Lies Dir doch bitte mal den Tread bzgl. Pfadangabe und Arbeitsverzeichnis noch mal durch :!:
Bei Dir fehlt der Pfad.

Chegga 3. Aug 2005 16:59

Re: *.Exe-Datei mit Programm öffnen
 
Hi,

@ Superior:
Ich habe Delphi zwar gerade nicht installiert,
aber hier mal ein Pseudo-Code der funktionieren müsste. :)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(handle, 'open', 'C:\Programme\Tester.exe', nil, nil, SW_SHOWNORMAL);
end;
Damit öffnest du die Tester.exe

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ListBox1.Items.LoadFromFile('C:\Datei.txt') //bzw. deinen Pfad
end;
Dann hast du die *.txt in deine ListBox geladen.
Ich weiß nicht ob's klappt, aber müsste eigentlich zu 99,9% :wink:

MfG Marc

Superior 4. Aug 2005 09:13

Re: *.Exe-Datei mit Programm öffnen
 
Dass es mit Pfad-Angabe funktioniert denk ich mir auch.
Nur bringt mich das definitiv nicht weiter. Ich will das Programm nämlich auf einer Homepage veröffentlichen und zum freien Download zur Verfügung stellen. Da kopiert jeder sich das Prog in ein anderes Verzeichnis und dann bringt mir das mit der Pfad-Angabe auch wieder nix...

mfg
Superior

Luckie 4. Aug 2005 11:24

Re: *.Exe-Datei mit Programm öffnen
 
Meinen letzten Beitrag hast du nicht zufällig gelesen?

Zacherl 4. Aug 2005 11:30

Re: *.Exe-Datei mit Programm öffnen
 
Mal ganz deutlich:
Delphi-Quellcode:
ListBoxX.Items.LoadFromFile(extractfilepath(application.exename)+'Datei.txt');
Bei Programmen indenen die Unit Forms nicht eingebunden ist, muss, wie Luckie schon sagte statt
Delphi-Quellcode:
extractfilepath(application.exename)
Delphi-Quellcode:
extrcactfilepath(paramstr(0));
verwendet werden.

geht überall!

Florian


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 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