Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einer Anwendung ein bestimmte Datei übergeben? (https://www.delphipraxis.net/41572-einer-anwendung-ein-bestimmte-datei-uebergeben.html)

Tommy111 5. Mär 2005 12:08


Einer Anwendung ein bestimmte Datei übergeben?
 
Moin,
hab mal wieder en Problem, daß ich nicht allein hinbekomme! :wall:
Es geht um das starten einer ander Anwendung aus meinem selbsgeschriebenen Delphi-Programm.
Also ich will der word.exe die Datei übergeben, die im Edit1 steht (z.B. c:\dokumente\test.doc)!
Mein Versuch:
Delphi-Quellcode:
ShellExecute(0, 'open' ,PChar('word.exe'), PChar(Form6.Edit1.Text), nil, sw_ShowNormal);

Das Problem dabei ist, daß ich immer den kompletten Pfad im Edit1 stehen haben will, damit ich jedes *.doc an belieb abgespeicherter Stelle öffnen kann. Der Anwendung word.exe läßt sich aber kein kompletter Pfad übergeben, sondern nur die zu öffnende *.doc Datei.

Also, wie läßt sich eine Datei(mit Pfadangabe) mit einem bestimmten Programm öffnen???

BenjaminH 5. Mär 2005 12:13

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Salute,
vielleicht klappt das:
Delphi-Quellcode:
ShellExecute(0, 'open' ,PChar('word.exe'), PChar('"'+Form6.Edit1.Text+'"'), nil, sw_ShowNormal);

_master_ 5. Mär 2005 12:16

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
also das klappt auch ganz gut, es öffnet es mit der standard anwendung
Delphi-Quellcode:
  ShellExecute(Handle, 'open', PChar('c:\docs\test1.doc'), nil, nil, SW_SHOW);

himitsu 5. Mär 2005 12:22

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Zitat:

Zitat von BenjaminH
vielleicht klappt das:

Es wird es wohl (mit ganz großer Sicherheit :zwinker: )

Im 3. Parameter wird nur eine Datei erwartet, also wirde dort auch nicht an Leerzeichen aufgeteilt, was bei den Parametern nicht der Fall ist, dort werden ja die einzelnen Parameter durch Leerzeichen voneinander getrennt, also muß/sollte man irgendwie (mit dem ") kenzeichnen, was zusammengehört.


PS: der Code von _master_ hat einen netten Vorteil, denn wenn kein Word vorhanden ist, oder der Benutzer ein anderes Programm bevorzugt (z.B. Open Office...).
Denn dort wird es dem PC überlassen, welches Programm verwendet werden soll.

Luckie 5. Mär 2005 12:25

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Meine Idee: http://www.delphipraxis.net/internal...=330330#330330

Tommy111 6. Mär 2005 11:49

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Also, irgendwie klappt das net!
Nochmal:
Ich will einer bestimmten Anwendung *.exe (hab da jetz Word nur als Beispiel genommen) eine Datei, die ich vorher über en OpenDialog in ein Edit geschrieben hab, übergeben!

Beispiel:
ich hab ne Datei c:\test_ordner\datenmuster.stl und will die mit der anwendung Beliebig.exe öffnen.

Binärbaum 6. Mär 2005 14:16

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Zitat:

Zitat von Tommy111
Also, irgendwie klappt das net!

Was genau geht denn nicht?
Wenn du es so machst, wie von BenjaminH vorgeschlagen, müsste es funktionieren.
Delphi-Quellcode:
ShellExecute(0, 'open' ,PChar('C:\IgendeinOrdner\beliebig.exe'), PChar('"'+Form6.Edit1.Text+'"'), nil, SW_ShowNormal);
MfG
Binärbaum

moritz 6. Mär 2005 14:20

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Das Problem bei der Sache ist, dass es keine Standards gibt. Will heißen, jedes Programm macht es so, wie es es für richtig hält.
Manche erwarten es einfach als 2. Paramterer, manche mit ... -oPFAD, manche überhaupt nicht, ....

Luckie 6. Mär 2005 14:22

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Was gibt den Shellexecute für einen Fehlercode zurück?

Tommy111 6. Mär 2005 21:07

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Zitat:

Was gibt den Shellexecute für einen Fehlercode zurück?
Also starten kann ich mein geschriebes Programm, das is kein Problem!

Das Problem ist einfach der Pfad der Datei die ich öffnen will!
Ich hab die Anwendung Beliebig.exe und die Datei datenmuster.stl mal in den Ordner reinkopiert wo mein selbst geschriebenes Delphi-Programm drinsteht, un da klappt das.
Ich will aber auch die datenmuster.stl mit Beliebig.exe öffnen können, wenn sich die datenmuster.stl in einem beliebig anderen Verzeichniss befindet! Deshalb muß ich doch auch den Pfad mit übergeben, oder?!

Binärbaum 7. Mär 2005 00:32

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Zitat:

Zitat von Tommy111
Das Problem ist einfach der Pfad der Datei die ich öffnen will!
Ich hab die Anwendung Beliebig.exe und die Datei datenmuster.stl mal in den Ordner reinkopiert wo mein selbst geschriebenes Delphi-Programm drinsteht, un da klappt das.
Ich will aber auch die datenmuster.stl mit Beliebig.exe öffnen können, wenn sich die datenmuster.stl in einem beliebig anderen Verzeichniss befindet! Deshalb muß ich doch auch den Pfad mit übergeben, oder?!

Ja, da muss man den Pfad mit übergeben. Ohne Pfad geht nur, wenn die Datei im selben Verzeichnis liegt wie die beliebig.exe oder evtl. wenn die Datei im Systempfad liegt.

MfG
Binärbaum

Tommy111 8. Mär 2005 17:13

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Zitat:

Ja, da muss man den Pfad mit übergeben.
Ja das is ja genau das Problem! Wie und wo soll ich denn den Pfad mit übergeben? ShellExecute erwartet aber nur die Datei ohne Pfad. Wenn ich den Pfad mit übergebe
Delphi-Quellcode:
ShellExecute(0, 'open' ,PChar('word.exe'), PChar('c:\testordner\musterdatei.stl'), nil, sw_ShowNormal);
klappt das net ! Oder muß ich das dann anders schreiben. In der Delphi-Hilfe steht aber auch garnix über die ShellExecute und deren Parameter!!! :evil:

Oder gibts eine andere Möglichkeit, die ich wieder einmal nicht kenne?!?!?!?

BenjaminH 8. Mär 2005 17:19

Re: Einer Anwendung ein bestimmte Datei übergeben?
 
Zitat:

Zitat von Tommy111
Delphi-Quellcode:
ShellExecute(0, 'open' ,PChar('word.exe'), PChar('c:\testordner\musterdatei.stl'), nil, sw_ShowNormal);
klappt das net !

Natürlich klapt das nicht, weil der Pfad als mehrere Parameter aufgefasst wird.
Wie ich vorher schon gesagt habe, muss der Pfad von Anführungszeichen umschlossen werden.
Also so:
Delphi-Quellcode:
ShellExecute(0, 'open' ,PChar('word.exe'), PChar('"c:\testordner\musterdatei.stl"'), nil, sw_ShowNormal);


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