![]() |
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:
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 ?
ShellExecute(Handle, 'open', PChar(sDateiname), nil, nil, sw_Show);
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 |
Re: Datei mit Fremdanwendung öffnen (ShellExecute)
Hallo,
vielleicht so?
Delphi-Quellcode:
ShellExecute(Handle,'open','C:\Programme\Winamp\winamp.exe ' + PChar('sDateiname'),'', '',SW_NORMAL);
|
Re: Datei mit Fremdanwendung öffnen (ShellExecute)
Das sollte gehen:
Delphi-Quellcode:
Dann wird der Eintrag der aktuellen Playlist hinzugefügt.
ShellExecute(Handle,'open','C:\Programme\Winamp\winamp.exe',PChar('/ADD ' + sDateiname),'',SW_NORMAL);
|
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 |
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])
|
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:
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//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);
Delphi-Quellcode:
Grüße//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); Holger |
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 |
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 |
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 |
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 18:11 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 by Thomas Breitkreuz