Antworten

Thema: winamp per html versteuern

Nachricht

Klicke hier, um dich anzumelden

 

Du kannst aus dieser Liste ein Symbol für deine Nachricht auswählen.

Zusätzliche Einstellungen

  • Wenn du diese Option aktivierst, werden URLs automatisch mit BB-Code ergänzt. www.beispiel.de wird zu [URL]http://www.beispiel.de[/URL].

Thema bewerten

Wenn du möchtest, kannst du dieses Thema bewerten.

Übersicht (Neuester Beitrag zuerst)

  • 01.09.2007
    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.
  • 01.09.2007
    terra-power
    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?
  • 01.09.2007
    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..
  • 01.09.2007
    terra-power
    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 )
  • 01.09.2007
    hab noch immer keine ahnung wie ich das machen soll^^
    aber egal...
    und dir kann ich leider auch nicht helfen
  • 29.08.2007
    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:
  • 01.08.2007
    terra-power
    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.
  • 30.07.2007
    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??
  • 29.07.2007
    uff ich glaub ich überlege es mir nochmal ob ich ihn steuern will^^
  • 29.07.2007
    terra-power
    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.
  • 28.07.2007
    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??!!
  • 23.07.2007
    terra-power
    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.
  • 23.07.2007
    one
    Weil du es wahrscheinlich steuern willst und nicht versteuern?
  • 23.07.2007
    warum das??
  • 22.07.2007
    one
    Wenn du winamp versteuern willst musst du es beim Finanzamt anmelden.
Dieses Thema enthält mehr als 15 Antworten. Klicke hier, um das ganze Thema zu lesen.

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Ja
  • Beiträge bearbeiten: Ja
  •