Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien mit angegebenem Programm öffnen (https://www.delphipraxis.net/40529-dateien-mit-angegebenem-programm-oeffnen.html)

qube-us 17. Feb 2005 00:49


Dateien mit angegebenem Programm öffnen
 
Ich suche einen oder mehrere Befehle, welche folgende Möglichkeiten bieten:

1. Eingabe eines Pfades einer Datei
2. Eingabe eines Pfades einer exe-datei mit der die Datei geöffnet werden soll
3. Der Pfad soll sich bei 1. und 2. auf den Ort beziehen, wo die Delphi-Datei abgelegt ist, es soll also mit Pfaden gearbeitet werden wie "/Dateien/start.exe" oder "/Dateien/datei.cpp"

Wenn diese Möglichkeiten existieren würde ich mich wirklich sehr freuen, wenn ich eine Antwort bekomme. Danke schonmal :thumb:

Binärbaum 17. Feb 2005 01:00

Re: Dateien mit angegebenem Programm öffnen
 
So eine ähnliche Frage hatten wir hier schonmal, nutze die Forumsuche.

Aber trotzdem hier kurz ein Hinweis:
Den Pfad des Delphi-Programms bekommt man mit
Delphi-Quellcode:
Paramstr(0)
und für das Öffnen von Dateien kannst du Delphi-Referenz durchsuchenShellExecute aus der Unit ShellApi nehmen.

MfG
Binärbaum

Tommy111 17. Feb 2005 11:09

Re: Dateien mit angegebenem Programm öffnen
 
Hallo,
will man aus einem eigenen Programm ein anderes (im Beispiel c:\test\xy.exe) starten, kann man folgende API-Methode verwenden:
Delphi-Quellcode:
uses ShellApi;

...
ShellExecute(Application.Handle, 'open' ,PChar('xy.exe'), nil, PChar('c:\test'), sw_ShowNormal);
Statt "nil" kann der zu startenden Anwendung auch ein Parameter als nullterminierter String übergeben werden.
Statt der Konstante sw_ShowNormal sind u.a. auch folgende Werte möglich: sw_ShowMaximized, um das Programm im Vollbildmodus zu starten, sw_ShowMinimized, um das Programm minimiert zu starten.

qube-us 24. Feb 2005 17:43

Re: Dateien mit angegebenem Programm öffnen
 
Hi, ich habe den Befehl ausprobiert, da ich eine bestimmte mp3 mit einem bestimmten player öffnen wollte.

allerdings hat sich nur der player geöffnet...darauf hin habe ich die beiden pfade vertauscht und alles hat funktioniert....glaubte ich....in Wirklichkeit wurde aber nur die mp3 geöffnet und zwar mit dem Standart-player, welcher zufällig der war, den ich auch im pfad angegeben habe....

wenn ich aber einen anderen standart-player eingestellt habe, dann wurde die mp3 mit diesem geöffnet, das heißt das man die pfade hätte garnicht vertauschen müssen was ich erst dachte....

also bewirkt der von euch genannte Befehl nur, dass der player geöffnet wird, aber nicht, dass die mp3 durch ihn gestartet wird.

Gibt es keine Möglichkeit mit der man mit einem pfad zu einem player und zu einer mp3, die mp3 mit diesem player abspielen kann?

Danke schonmal!

Binärbaum 24. Feb 2005 18:41

Re: Dateien mit angegebenem Programm öffnen
 
Doch es gibt eine Möglichkeit: mit ShellExecute wie oben angegeben. :zwinker:
Wenn man den Pfad zur MP3-Datei als Parameter übergibt, sollte jeder (vernünftige) MP3-Player das auch erkennen können und die entsprechende Datei öffnen. Das funktioniert auch, wenn es nicht der Standard-MP3-Player ist.

[Edit]
Also in etwa so (Pfade müssen natürlich noch angepasst werden):
Delphi-Quellcode:
ShellExecute(0, 'open', PChar('C:\irgendwo\EinMP3_Player.exe'), PChar('C:\EinOrdner\irgendwas.mp3'), nil, SW_SHOWNORMAL);
Eventuell bietet es sich an, den Pfad zur MP3-Datei in Anführungszeichen zu setzen, wenn der Pfad Leerzeichen enthält.
Delphi-Quellcode:
ShellExecute(0, 'open', PChar('C:\irgendwo\EinMP3_Player.exe'), PChar('"C:\Ein anderer Ordner\irgendwas.mp3"'), nil, SW_SHOWNORMAL);
[/Edit]

MfG
Binärbaum

qube-us 24. Feb 2005 20:56

Re: Dateien mit angegebenem Programm öffnen
 
:-D Gut, also das mit den "" war das Problem, hätte nie gedacht, dass man "" in '' einfügen muss.

Vielen Dank für die Hilfe. :thumb:

Binärbaum 24. Feb 2005 20:59

Re: Dateien mit angegebenem Programm öffnen
 
Zitat:

Zitat von qube-us
:-D Gut, also das mit den "" war das Problem, hätte nie gedacht, dass man "" in '' einfügen muss.

Das liegt daran, dass bei einer Parameterübergabe ohne "" alles nach dem Leerzeichen als neuer Parameter interpretiert wird. Logischerweise kann das Programm dann die angegebene Datei nicht finden.
(Glaube, dass hatte ich schonmal irgendwo auf der DP erklärt.)

MfG
Binärbaum


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