Thema: winamp per html versteuern
Klicke hier, um dich anzumelden
Du kannst aus dieser Liste ein Symbol für deine Nachricht auswählen.
Wenn du diese Option aktivierst, werden URLs automatisch mit BB-Code ergänzt. www.beispiel.de wird zu [URL]http://www.beispiel.de[/URL].
Wenn du möchtest, kannst du dieses Thema bewerten.
Ich habs mit Visual Studio kompiliert, also dem MS Compiler. Auch per Aufruf direkt über .cgi ist es gecrasht.. Und wenn kein header gesendet wird schickt er es trotzdem, ganz einfach als "text" datei.. Der Aufruf mit Parametern funktionierte über system() bei php auch, wie die Screenshots beweisen.
Komisch ... bei mir hats so funktioniert. Vieleicht lags an der Apache konfiguration oder an nem anderem c compiler. mit was hast du es denn kompiliert?
Wieso funktioniert dann die Ausgabe auf der einen Seite, aber er wechselt nur den Song nicht? Und was da abschmiert ist nicht der Webserver sondern die ausgeführte .exe - die ich schon in .cgi umbenannt hatte und es trotzdem nicht funktionierte! Habe es jetzt anders gelöst - und zwar per Winamp Plugin httpQ und fsockopen() Hab ich in irgend einem anderen Forum gefunden, würde ja gerne den Link posten, habe ihn aber nicht gespeichert..
Hallo, 3 dinge auf die schnelle, die dir viuelleicht helfen könnten: 1. du musst die exe dateien von *.exe in *.cgi umbennen oder apache umkonfigurieren 2. dein c(++) programm sollte als erste zeile sowas ausgeben: "Content-Type: text/html\n\n" oder einen alternativen content type. Ansonsten weiß der webserver ja nicht, was er übers http als content type senden soll und schmiert ab. 3. du kannst HTTP GET parameter nicht per argv[] auslesen. das ist etwas komplizierter. theoretisch geht es aber, eine cgi zu haben, die die gesammte funktionalität von winamp kapselt und nur anhand der get parameter verschiedene aktionen ausführt. (4. nicht php verwenden )
hab noch immer keine ahnung wie ich das machen soll^^ aber egal... und dir kann ich leider auch nicht helfen
Würdest du das bitte etwas genauer erklären mit dem cgi-bin ordner? Ich hab die .exe zwar und die funktioniert auch wenn ich sie so ausführe Hab das prog allerdings etwas anders geschrieben: songcontrol.exe Code: int main(int argc, char* argv[]) { HWND hwndWinamp = FindWindowA("Winamp v1.x",NULL); switch(*argv[1]) { case '1': printf("switching to next track"); SendMessage(hwndWinamp,WM_COMMAND, 40048, 0); break; case '2': printf("switchting to previous track"); SendMessage(hwndWinamp,WM_COMMAND, 40044, 0); break; default: printf("error occured."); break; } return 0; } currentsong.exe Code: int main(int argc, char* argv[]) { HWND hwndWinamp = FindWindowA("Winamp v1.x",NULL); char this_title[2048],*p; GetWindowTextA(hwndWinamp,this_title,sizeof(this_title)); p = this_title+strlen(this_title)-8; while (p >= this_title) { if (!strnicmp(p,"- Winamp",8)) break; p--; } if (p >= this_title) p--; while (p >= this_title && *p == ' ') p--; *++p=0; printf("%s",this_title); return 0; } Wenn ich das nun über den Webserver aufrufe bekomme ich ne Crash Meldung vom Debugger das z.B. "currentsong.exe" abgeschmiert sei oder "songcontrol.exe".. Ob ich das nun über eine php und system() aufrufe oder über den cgi-bin ordner ist dabei völlig egal. Bzw. die currentsong.exe schmiert über php ab - die songcontrol.exe gibt zwar aus das sie den Track wechselt, aber es passiert nichts. Über die shell funktioniert es allerdings auch INNERHALB einer .php datei mit dem system() Befehl:
int main(int argc, char* argv[]) { HWND hwndWinamp = FindWindowA("Winamp v1.x",NULL); switch(*argv[1]) { case '1': printf("switching to next track"); SendMessage(hwndWinamp,WM_COMMAND, 40048, 0); break; case '2': printf("switchting to previous track"); SendMessage(hwndWinamp,WM_COMMAND, 40044, 0); break; default: printf("error occured."); break; } return 0; }
int main(int argc, char* argv[]) { HWND hwndWinamp = FindWindowA("Winamp v1.x",NULL); char this_title[2048],*p; GetWindowTextA(hwndWinamp,this_title,sizeof(this_title)); p = this_title+strlen(this_title)-8; while (p >= this_title) { if (!strnicmp(p,"- Winamp",8)) break; p--; } if (p >= this_title) p--; while (p >= this_title && *p == ' ') p--; *++p=0; printf("%s",this_title); return 0; }
Hallo, mich hat die Winamp sache noch etwas beschäftigt und da ist mir noch ne idee gekommen wie man winamp fernsteuern könnte. und zwar man holt sich einfach das window handle und sendet dann an dieses fenster befehle. Das ganze habe ich die programmiersprache c++ implementiert. Hier erstmal der code: Code: #include <windows.h> #include <iostream> using namespace std; int main() { HWND winamp = FindWindow("Winamp v1.x",NULL); // Hier die Code nummern /* Previous track button 40044 Next track button 40048 Play button 40045 Pause/Unpause button 40046 Stop button 40047 Fadeout and stop 40147 Stop after current track 40157 Fast-forward 5 seconds 40148 Fast-rewind 5 seconds 40144 Start of playlist 40154 Go to end of playlist 40158 Open file dialog 40029 Open URL dialog 40155 Open file info box 40188 Set time display mode to elapsed 40037 Set time display mode to remaining 40038 Toggle preferences screen 40012 Open visualization options 40190 Open visualization plug-in options 40191 Execute current visualization plug-in 40192 Toggle about box 40041 Toggle title Autoscrolling 40189 Toggle always on top 40019 Toggle Windowshade 40064 Toggle Playlist Windowshade 40266 Toggle doublesize mode 40165 Toggle EQ 40036 Toggle playlist editor 40040 Toggle main window visible 40258 Toggle minibrowser 40298 Toggle easymove 40186 Raise volume by 1% 40058 Lower volume by 1% 40059 Toggle repeat 40022 Toggle shuffle 40023 Open jump to time dialog 40193 Open jump to file dialog 40194 Open skin selector 40219 Configure current visualization plug-in 40221 Reload the current skin 40291 Close Winamp 40001 Moves back 10 tracks in playlist 40197 Show the edit bookmarks 40320 Adds current track as a bookmark 40321 Play audio CD 40323 Load a preset from EQ 40253 Save a preset to EQF 40254 Opens load presets dialog 40172 Opens auto-load presets dialog 40173 Load default preset 40174 Opens save preset dialog 40175 Opens auto-load save preset 40176 Opens delete preset dialog 40178 Opens delete an auto load preset dialog 40180 */ cout << "Command Executed" << endl; SendMessage(winamp, WM_COMMAND, 40048, NULL); return 0; } Wie gesagt, das ganze ist ein c++ programm. Man kann es also einfach zu ner exe kompilieren und auf nen apache webserver (mit cgi-bin) schmeißen. Wenn man dann im browser beispielsweise http://deinrechner.bla/nexttrack.cgi eingibt spielt winamp das nächste lied in der song-tabelle ab. Hatte das eben mal getestet und hat super funktioniert. nettes feature: habe mein handy per bluetooth mit dem rechner verbunden. so ist mein handy ne fernbediehnung für musik am rechner :-) nette idee.
#include <windows.h> #include <iostream> using namespace std; int main() { HWND winamp = FindWindow("Winamp v1.x",NULL); // Hier die Code nummern /* Previous track button 40044 Next track button 40048 Play button 40045 Pause/Unpause button 40046 Stop button 40047 Fadeout and stop 40147 Stop after current track 40157 Fast-forward 5 seconds 40148 Fast-rewind 5 seconds 40144 Start of playlist 40154 Go to end of playlist 40158 Open file dialog 40029 Open URL dialog 40155 Open file info box 40188 Set time display mode to elapsed 40037 Set time display mode to remaining 40038 Toggle preferences screen 40012 Open visualization options 40190 Open visualization plug-in options 40191 Execute current visualization plug-in 40192 Toggle about box 40041 Toggle title Autoscrolling 40189 Toggle always on top 40019 Toggle Windowshade 40064 Toggle Playlist Windowshade 40266 Toggle doublesize mode 40165 Toggle EQ 40036 Toggle playlist editor 40040 Toggle main window visible 40258 Toggle minibrowser 40298 Toggle easymove 40186 Raise volume by 1% 40058 Lower volume by 1% 40059 Toggle repeat 40022 Toggle shuffle 40023 Open jump to time dialog 40193 Open jump to file dialog 40194 Open skin selector 40219 Configure current visualization plug-in 40221 Reload the current skin 40291 Close Winamp 40001 Moves back 10 tracks in playlist 40197 Show the edit bookmarks 40320 Adds current track as a bookmark 40321 Play audio CD 40323 Load a preset from EQ 40253 Save a preset to EQF 40254 Opens load presets dialog 40172 Opens auto-load presets dialog 40173 Load default preset 40174 Opens save preset dialog 40175 Opens auto-load save preset 40176 Opens delete preset dialog 40178 Opens delete an auto load preset dialog 40180 */ cout << "Command Executed" << endl; SendMessage(winamp, WM_COMMAND, 40048, NULL); return 0; }
ok bin nicht der besste in php wenn ich das so mache: shell_exec("C:\Programme\Winamp\Winamp.exe F:\Musik\Song.mp3") was muss ich dan noch machen??
uff ich glaub ich überlege es mir nochmal ob ich ihn steuern will^^
Wie bereits gesagt, winamp hat eine C Api. Also eine schnittstelle die es ermöglicht, winamp zu steuern. Jedoch, wie der Name schon sagt, müsstest du dafür c können. Aus eigener erfahrung ist die schnittstelle auch nicht grade einfach zu benutzen. Also, wenn du winamp richtig steuern willst, egal ob per webanwendung oder sonstigem,müsstest du die programmiersprache C erlernen und dich in das winamp sdk einlesen.
ok danke mal schaun wollte das zwar bei ein paar lieder machen aber auch egal danke bzw gibt es kein programm das die automatisch macht den es wäre umständlich das für jedes leid zu machen??!!
In Php gibt es den befehl system, damit kannst du einen befehl auf die kommandozeile schicken. wenn du dir ein php skript baust, mit der zeile system("...winamp.exe ../path/song.mp3") wird der string an die kommandozeile weiter gegeben und dort ausgeführt, welches dazu führt, das winamp gestartet wird und song.mp3 abgespielt wird. Alternativ kannst du auch den befehl exec benutzen. googeln hilft bei der genauen befehlsfindung. diese lösung eigent sich aber wirklich nur zum starten. direkt steuern kannst du das damit nicht. dafür müsstest du dich etwas in die C api einlesen. Diese kommandozeilen sachen sind nur eine schnelle und einfache lösung, deswegen sind sie auch im bereich amateur anzusiedeln.
Weil du es wahrscheinlich steuern willst und nicht versteuern?
warum das??
Wenn du winamp versteuern willst musst du es beim Finanzamt anmelden.
Foren-Regeln