ShellExecute
-
Hallo
ich möchte ein mp3 in winamp abspielen. das ganze soll durch betätigen eines buttons erreicht werden. wie funktioniert das mit shellexecute()?
vielen dank
-
Bitte:
ShellExecute(NULL,"open","C:\\Programme\\Winamp3\\Studio.exe","D:\\MP3\\File.mp3",NULL,SW_SHOW);
Def von ShellExecut:
HINSTANCE ShellExecute( HWND hwnd, //NULL LPCTSTR lpVerb, //"open" LPCTSTR lpFile, //EXE Datei LPCTSTR lpParameters, //Deine Parameter. In diesem fall der Pfad zum MP3 File. LPCTSTR lpDirectory, //Pfad zum Verzeichniss in dem das Programm ausgeführt werden soll. INT nShowCmd //Wie soll das Fenster angezeigt werden? SW_HIDE (is weg) SW_SHOW (is da). );
-
Danke!
Der Player soll nun aber automatisch loslegen, nicht erst über Betätigen von Play. Hab das mit dem Verb "Play" versucht klappt aber nicht.
Gruss
Uwe
-
fang mit dem spy die message ab, die von der taste play generiert wird.
anschl. suche mit findwindow in deinem programm nach dem fester von winamp.
hast du das gefunden, so schick im die abgefangene nachricht !
-
Ist Winamp dein Standard Player??
Wenn ja, brauchst du nur die MP3 Datei öffnen, sie spielt in Winamp dann automatisch an...
-
Also bei mir spielt er automatisch?
-
Hier eine Version, wo sich dein Programm den Player mittels simulierten LButtonDown auf dei Playtaste startet.
Dieser Code gehört nach dem ShellExecute eingefügt.
Anschliessend wird max. 5 Sekunden lang versucht das WinAmp Fenster zu finden.
Wenn dieses gefunden wird, wird sofort die Message "LBUTTONDWON", danach "LBUTTONUP" auf die Play taste an Winamp geschickt.Erfolgreich ausprobiert mit der neuesten Version von www.winamp.com
Ich hoffe, dass ich dir helfen konnte !
DWORD dwStartTime = GetTickCount(); HWND winamp = NULL; while(1) { winamp = ::FindWindow(NULL,"normal"); // winamp3 if(winamp != NULL || GetTickCount() - dwStartTime > 5000) break; } if(winamp != NULL) { AfxMessageBox("winamp3 gefunden -> versuche zu starten..."); ::PostMessage(winamp,WM_LBUTTONDOWN,0x00000001, 0x005D002D); ::PostMessage(winamp,WM_LBUTTONUP, 0x00000000, 0x005D002D); } else { MessageBox("Konnte WinAmp nicht finden !!"); }
-
Nachtrag:
Sollte der Player mit o.a. Code nicht starten, einfach
ein
Sleep(1000); oder ähnlich nachif(winamp != NULL)
{einfügen !