Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei mit Fremdanwendung öffnen (ShellExecute) (https://www.delphipraxis.net/76167-datei-mit-fremdanwendung-oeffnen-shellexecute.html)

newuser01 30. Aug 2006 23:33


Datei mit Fremdanwendung öffnen (ShellExecute)
 
Hallo liebe Delphifreunde ich möchte gerne aus meinem Delphiprogramm herraus eine Datei mit einer anderen Anwenung öffnen. Um genau zu sein möchte ich eine mp3 Datei mit Winamp öffnen ich könnte dazu die Dateiverknüpfung der mp3 Dateien ausnutzen und es mit dem Aufruf

Delphi-Quellcode:
ShellExecute(Handle, 'open', PChar(sDateiname), nil, nil, sw_Show);
realisieren. Wenn nun aber die mp3 Dateien nicht mit Winamp verknüpft sind funktioniert das ja nicht mehr Ich möchte also sicherstellen das die Dateien immer mit Winamp geöffnet werden wie kann ich das realisieren ?

Ich habe es schon so versucht was aber leider auch nicht funktioniert
Delphi-Quellcode:
ShellExecute(Handle,'open','C:\Programme\Winamp\winamp.exe',PChar('sDateiname'),'',SW_NORMAL);

Grüße
Holger

CG2003 30. Aug 2006 23:39

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Hallo,

vielleicht so?

Delphi-Quellcode:
ShellExecute(Handle,'open','C:\Programme\Winamp\winamp.exe ' + PChar('sDateiname'),'', '',SW_NORMAL);

Daniel G 30. Aug 2006 23:42

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Das sollte gehen:

Delphi-Quellcode:
ShellExecute(Handle,'open','C:\Programme\Winamp\winamp.exe',PChar('/ADD ' + sDateiname),'',SW_NORMAL);
Dann wird der Eintrag der aktuellen Playlist hinzugefügt.

newuser01 31. Aug 2006 11:19

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Hallo und ersteinmal Danke für eure schnellen Antworten

Die Idee von Daniel mit dem hinnzufügen zur Playlist ist nicht schlecht funktioniert nur leider nicht ganz es wird zwar was in der Playlist übernommen aber leider nur der zerlegte String also wenn sDateiname zb: D:\mp3\depeche mode - stripped.mp3 ist dann wird es in der Playlist so übernommen

depeche
mode
-
stripped

aber ansonsten ist die Idee gut wäre Super wenn es für Winamp und BPM studio gehen würde es muss aber nicht unbedingt in der Playlist eingetragen werden es reicht wenn der entsprechende Song abgespielt wird


Grüße
Holger

Christian Seehase 31. Aug 2006 11:29

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Moin Holger,

um den Fehler zu vermeiden, musst Du den Pfad noch in " einschliessen, wie Du es auch aus einer Konsole heraus aufgerufen tun müsstest:

Code:
PChar('/ADD [color=red][b]"[/b][/color]' + sDateiname[color=red][b]+'"'[/b][/color])

newuser01 31. Aug 2006 16:37

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Danke für deine Hilfe Christian der Fehler ist jetzt behoben und die Datei wird von Winamp abgespielt.

Delphi-Quellcode:

//Datei wird normal abgespielt
ShellExecute(Handle,'open','C:\Programme\Winamp\winamp.exe',PChar('"' + sDateiname+'"'),'',SW_NORMAL);

//Datei wird in Playlist von Winamp übernommen
ShellExecute(Handle,'open','C:\Programme\Winamp\winamp.exe',PChar('/ADD "' + sDateiname+'"'),'',SW_NORMAL);
Eine Frage hätte ich noch. Weiß jemand die Parameter um die Datei in der Playlist von BPM Studio zu übernehmen ? Denn mit BPM Studio funktioniert die Sache nicht so recht es wird zwar gestartet aber der Song wird nicht abgespielt oder in der Playlist übernommen

Delphi-Quellcode:
 
//normal
ShellExecute(Handle,'open','C:\Programme\ALCATech\BPM-Studio Profi\BPM.exe',PChar('"' + sDateiname+'"'),'',SW_NORMAL);

//add Playlist
ShellExecute(Handle,'open','C:\Programme\ALCATech\BPM-Studio Profi\BPM.exe',PChar('/ADD "' + sDateiname+'"'),'',SW_NORMAL);
Grüße
Holger

Christian Seehase 31. Aug 2006 16:50

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Moin Holger,

da stellt sich mir die Frage, ob das Programm überhaupt parametergesteuert funktioniert...
Sollte das der Fall sein:
Wenn man einen Datentyp auf das Programm registriert, sollte man die Verknüpfung in der Registry finden.

Einfach mal in HKEY_CLASSES_ROOT nach dem Programmnamen suchen.
Wenn sich dieser in einem Key unter Shell\Open\Command als Standardwert befindet, könnte hier der Aufruf enthalten sein.

Bei registriertem Typ (Beispiel .mp3) kann man sich auch direkt dahin navigieren:

HKEY_CLASSES_ROOT\.mp3
Hier den Standardwert auslesen

HKEY_CLASS_ROOT\<ausgelesener Wert>\Shell\Open\Command
Hier befindet sich dann im Standardwert der Aufruf

newuser01 31. Aug 2006 17:21

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal in HKEY_CLASSES_ROOT nach BPM suchen lassen und den Inhalt in eine Textdatei (Dateianhang) kopiert vielleicht hilft es dir ja weiter und in HKEY_CLASSES_ROOT\Shell\Open\Command\ steht als Standard nur %SystemRoot%\Explorer.exe /idlist,%I,%L

Grüße
Holger

Christian Seehase 31. Aug 2006 17:28

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
Moin Holger,

so wie es aussieht, hast Du nicht unter HKEY_CLASSES_ROOT, sondern unter HKEY_CURRENT_USER gesucht.
Oder aber es gibt in dem anderen Key keinen Eintrag.

Ausserdem habe ich nichts von HKEY_CLASSES_ROOT\Shell\Open\Command\ geschrieben ;-)

HKEY_CLASSES_ROOT\.mp3
Hier den Standardwert auslesen

HKEY_CLASS_ROOT\<ausgelesener Wert>\Shell\Open\Command
Hier befindet sich dann im Standardwert der Aufruf

SirThornberry 31. Aug 2006 18:01

Re: Datei mit Fremdanwendung öffnen (ShellExecute)
 
bpm-studio unterstützt das nicht. Um sicher zu gehen schreib einfach eine email an den support von alcatehc (support@alcatech.de)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.
Seite 1 von 2  1 2      

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