Probleme mit SendMessage um infos aus Winamp auszulesen



  • Hallo!

    Ich schreibe mir gerade ne kleine externe Applikation, welche unter anderem mit Winamp "kommuniziert".
    dabei verwende ich unter anderem folgende Funktion:

    #define IPC_GETINFO 126
    /* (requires Winamp 2.05+)
    ** int inf=SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETINFO);
    ** IPC_GETINFO returns info about the current playing song. The value
    ** it returns depends on the value of 'mode'.
    ** Mode Meaning
    ** ------------------
    ** 0 Samplerate (i.e. 44100)
    ** 1 Bitrate (i.e. 128)
    ** 2 Channels (i.e. 2)
    ** 3 (5+) Video LOWORD=w HIWORD=h
    ** 4 (5+) > 65536, string (video description)
    */
    hab sie aus ner Header Datei von Winamp raus.

    Funktioniert auch wenn ich als "mode" 0, 1 oder 2 übergebe. würde aber auch gerne den Titel des Songs auslesen: wie funktioniert das? muss ich da die funktion einem Char array zuweisen?

    bitte um hilfe!

    lg Stefan



  • Also, guck mal plz hier rein:
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-931558.html#931558

    Das ist nen angefangener Tread, den ich weitergeführt habe ^^

    So zu deiner Frage hier die Antwort:

    /*So sieht mein Codes aus Video habe ich vernachlässigt, da mein Progie nur dazu dient, als Fernbedienung zu fungieren, und dies ohne Monitor!*/
      //LE == Label edit !!! ^^ 
    
      //Handle deklarieren!
      HANDLE hwnd_winamp;
    
      //IPC_GETINFO
      /*
      ** Mode      Meaning
      ** ------------------
      ** 0         Samplerate (i.e. 44100)
      ** 1         Bitrate  (i.e. 128)
      ** 2         Channels (i.e. 2)
      ** 3 (5+)    Video LOWORD=w HIWORD=h
      ** 4 (5+)    > 65536, string (video description)
      */
      //Fenster finden
      hwnd_winamp = FindWindow("Winamp v1.x",NULL);
      //Funktionen:
      LE_Bitrate->Text    = SendMessage(hwnd_winamp,WM_WA_IPC,1,IPC_GETINFO);
      LE_Samplerate->Text = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETINFO);
    
      //Diese Funktion liefert nun mehrer Werte zurück muste abfangen habe ich via Switch - Case gelöst ^^
      switch (SendMessage(hwnd_winamp,WM_WA_IPC,2,IPC_GETINFO))
      {
        case 1:
        LE_Channels->Text   = "Mono";
        break;
        case 2:
        LE_Channels->Text   = "Stereo";
        break;
        case 3:
        LE_Channels->Text   = "Undefiniert Anzahl Channels: <3";
        break;
      }
    

    Denke das hilft dir weiter!
    Wenn du ne Lösung fürs Titel auslesen gefunden hast, poste Sie bitte in meinen Tread thx 🙂

    🕶

    MFG
    Dennis



  • Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten