Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ShellExecute problem mit winamp (https://www.delphipraxis.net/96716-shellexecute-problem-mit-winamp.html)

ghost007 29. Jul 2007 22:54


ShellExecute problem mit winamp
 
Hallo,
ich benitzte folgenden code um der aktuellen winamp playlist einen titel hinzuzufügen:

Delphi-Quellcode:
     ShellExecute(Application.Handle,'open', PChar(winamp_path+' /ADD '+track_path),'', Nil, SW_Show);
es funktioniert jedoch nicht.
winamp_path und track_path stimmen, das hab ich überprüft.
Laut diesem beitrag sollte das aber so funktionieren, meines erachtens:

Zitat:

Zitat von WINAMP FORUM
C:\path\to\winamp\winamp.exe /ADD C:\mp3\whatever.mp3
(Adds C:\mp3\whatever.mp3 to the playlist of a running Winamp, if Winamp is running, otherwise it opens Winamp and plays it outright)

wenn ich das in ausführen unter start eingebe funktionierts auch, aber mit dem shellexecute nicht.
Was mach ich falsch?

MfG - Ghost007

scrat1979 29. Jul 2007 22:57

Re: ShellExecute problem mit winamp
 
Hallo!!

Habe es gerade mal bei mir getestet:

1. Mein WinAMP befindet sich unter D:\Anwendungen\WinAMP
2. Die WAV-Dateien liegen unter D:\test

Ich denke, die Paramter müssen bei Shellexecute da rein, wo Du '' stehen hast - also getrennt vom eigentlichen Programmaufruf.

Dieser Aufruf funktioniert bei mir einwandfrei:

Delphi-Quellcode:
ShellExecute(Application.Handle,'open', PChar('D:\Anwendungen\Winamp\winamp.exe'),'"d:\test"', Nil, SW_Show);
Grüße,

SCRaT

semo 29. Jul 2007 23:32

Re: ShellExecute problem mit winamp
 
genau so ist es, paramater werden bei shellexecute immer im 4. parameter übergeben

ghost007 29. Jul 2007 23:38

Re: ShellExecute problem mit winamp
 
öh,
und wo kommt dann das "/ADD" hin? in den parameter mit rein?


MfG - Ghost007

semo 29. Jul 2007 23:45

Re: ShellExecute problem mit winamp
 
japp.

ghost007 30. Jul 2007 00:10

Re: ShellExecute problem mit winamp
 
hm,
Delphi-Quellcode:
ShellExecute(Application.Handle,'open', PChar(winamp_path),PChar('"/ADD '+track_path+'"'), Nil, SW_Show);
so wenn ichs mach, macht er die playlist leer und dann den track rein, kann ihn aber nicht abspieln o.O

MfG - Ghost007

semo 30. Jul 2007 00:52

Re: ShellExecute problem mit winamp
 
Schau dir mal die möglichen Parameter an die du Winamp übergeben kannst:
Dazu: START --> Ausführen --> cmd
Dann: cd "c:\programme\Winamp" + RETURN
Dann: winamp /? + RETURN

Das gibt dir die möglichen Parameter aus.
Für mich sieht das nicht so aus als wenn du damit auch einen Song oder eine Playlist abspielen kannst.

Dein Weg sollte folgender sein: Nutzung des Winamp SDK.
Kannst du hier downloaden: http://www.winamp.com/development/sdk

scrat1979 30. Jul 2007 05:58

Re: ShellExecute problem mit winamp
 
Zitat:

Zitat von ghost007
hm,
Delphi-Quellcode:
ShellExecute(Application.Handle,'open', PChar(winamp_path),PChar('"/ADD '+track_path+'"'), Nil, SW_Show);
so wenn ichs mach, macht er die playlist leer und dann den track rein, kann ihn aber nicht abspieln o.O

MfG - Ghost007

Komisch, wie gesagt, habe den Source bei mir getestet bevor ich ihn gepostet habe. Muss also funktionieren. Irgendwo muss sich da noch der Fehlerteufel eingeschlichen haben... Btw, bei mir spielt er die Tracks dann auch ab. Spielt er die Tracks bei Dir ab, wenn Du den Befehl in der Kommandozeile eingibst? Aktuelle WinAMP-Version?


SCRaT

semo 30. Jul 2007 08:43

Re: ShellExecute problem mit winamp
 
ich habe den aufruf per cmd line getätigt und es wurde nur ein eintrag zur playlist hinzugefügt.
habe die aktuelleste winamp gedownloadet gestern abend.

scrat1979 30. Jul 2007 11:24

Re: ShellExecute problem mit winamp
 
Zitat:

Zitat von computer-glossar.de
ich habe den aufruf per cmd line getätigt und es wurde nur ein eintrag zur playlist hinzugefügt.
habe die aktuelleste winamp gedownloadet gestern abend.

Also folgender Befehl funktioniert bei mir in der Kommandozeile einwandfrei:

"D:\Anwendungen\WinAMP\winamp.exe /add d:\test" (ohne hochkommata). Wie sieht Dein aufruf aus? Ist dort evtl. nur eine Datei vorhanden?!?

Wie sieht denn Dein Kommandozeilenaufruf exakt aus?

SCRaT

ghost007 30. Jul 2007 16:05

Re: ShellExecute problem mit winamp
 
Hallo,
nun hab ich ein komisches ergebnis:
Delphi-Quellcode:
track_path:='Z:\Lieder\linkin-park.mp3';
ShellExecute(Application.Handle,'open', PChar(winamp_path),PChar('/add '+track_path), Nil, SW_Show);
dann fügt er mir in winamp folgende einträge hinzu:

Zitat:

Zitat von WINAMP playlist
x. linkin
x+1. park

wenn ich nun davon einen abspielen will wird die audio datei nicht gefunden :gruebel:

MfG - Ghost007

wicht 30. Jul 2007 16:12

Re: ShellExecute problem mit winamp
 
Delphi-Quellcode:
ShellExecute(Application.Handle,'open', PChar(winamp_path),PChar('"/ADD '+track_path+'"'), Nil, SW_Show);
Ähm - so wie es hier steht gibt es nur einen Parameter, und der heißt "/ADD x:\track.mp3" - Ich würde sagen, dass es zwei Parameter sein müssen: "/ADD" und "x:\track.mp3". Also müsste der Aufruf so ausehen:

Delphi-Quellcode:
ShellExecute(Application.Handle,'open', PChar(winamp_path),PChar('"/ADD" "'+track_path+'"'), Nil, SW_Show);
Ungetestet und nur eine Vermutung.
By the way: Ich mache das für Winamp über eine Message die ich an das Fenster schicke. Der Aufruf geht wesentlich schneller und ist irgendwie professioneller finde ich. Aber auch nur meine Meinung :)

ghost007 30. Jul 2007 17:04

Re: ShellExecute problem mit winamp
 
Hi,
ich hab nu mal deinen aufruf getestet
Ergebnis:

Zitat:

Zitat von winamp playlist
1. add
2. linkin-park.mp3

:wall:

MfG - Ghost007

P.S.: Hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiilfe

turboPASCAL 30. Jul 2007 19:47

Re: ShellExecute problem mit winamp
 
Delphi-Quellcode:
procedure TForm1.btnAddToWmpListClick(Sender: TObject);
var
  WinampPathAndExec,
  WinampExecParam,
  SongFilePathAndName: String;
begin
  WinampPathAndExec := 'C:\Programme\Winamp\winamp.exe';
  SongFilePathAndName := 'C:\Nuppsi\Eigene Musik\The 411 - Dumb.mp3';
  WinampExecParam := '/ADD "' + SongFilePathAndName + '"';

  if ShellExecute(Application.Handle, 'open', PChar(WinampPathAndExec),
    PChar(WinampExecParam), Nil, SW_SHOWNORMAL) <= 32 then RaiseLastWin32Error;
end;
Am einfachsten Schritt für Schritt und dann klappt das auch mit dem Winamp... :zwinker:

ghost007 31. Jul 2007 12:22

Re: ShellExecute problem mit winamp
 
Hallo,
sehr schön, nun funktionierts ... wobei ich dachte das ich das gleiche gmacht han. Aber egal danke =)

MfG - Ghost007


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