Laden...

Songinfo von Winamp ermitteln

Erstellt von tkluge vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.767 Views
T
tkluge Themenstarter:in
12 Beiträge seit 2006
vor 16 Jahren
Songinfo von Winamp ermitteln

Hallo,

ich versuche verzweifelt, bei laufendem Winamp mit C# herauszufinden, welcher Titel gerade läuft. Hier mein Code:


        private string musicText()
        {
            StringBuilder temp = new StringBuilder(255);
            Process[] processes = Process.GetProcessesByName("winamp");
            foreach (Process p in processes)
            {
                IntPtr pFoundWindow = p.MainWindowHandle;
                Win32.GetWindowText(pFoundWindow, temp, 255);
            }
            return (temp.ToString());
        }

Das funktioniert zwar, hat aber leider einen Haken: Wenn Winamp minimiert ist und nur im Tray angezeigt wird funktioniert es eben nicht. Hat jemand noch eine Idee, wie man das realisieren könnte, ohne dass es darauf ankommt wie Winamp gerade angezeigt wird?

Vielen Dank und Gruss,

Thomas

369 Beiträge seit 2006
vor 16 Jahren

Du kannst direkt auf Winamp zugreifen. Ich bin mir ziemlich sicher, dass Informationen zum gerade laufenden Lied verfügbar sind. Nähere Informationen findest du vermutlich im Winamp SDK.

5.941 Beiträge seit 2005
vor 16 Jahren

Hallo Thomas

Hast du schon auf der offiziellen Seite geschaut?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

L
333 Beiträge seit 2007
vor 16 Jahren

Du musst das Fenster mit der Fensterklasse "Winamp v1.x" suchen (::FindWindow). Von dem kannst du nun den Fenstertitel lesen (::GetWindowText) oder du kannst Nachrichten an das Fenster schicken, um Tracklänge, Position, PlayState, Bitrate usw. zu ermitteln oder Aktionen auszulösen (Play, Pause, Next, Shuffle...). Letzteres ist im Winamp SDK schön beschrieben. Was du brauchst ist die Datei winamp/wa_ipc.h, da stehen alle Messages drin.

Einzig wenn du den Dateinamen des aktuellen Titels haben willst, dann wird's etwas aufwändiger. Denn da man mit Messages keine Zeichenketten abrufen kann (Prozessgrenze!), kannst du Winamp eine Nachricht senden, seine Playlist zu schreiben und den aktuellen Trackindex zurückzugeben. Dann musst du die Playlist-Datei noch finden und kannst sie auslesen (M3U-Format). Das klappt aber auch ganz gut, ist unter Vista nur etwas tricky, wegen Dateisystem-Virtualisierung oder sonstwas.

T
tkluge Themenstarter:in
12 Beiträge seit 2006
vor 16 Jahren

Vielen Dank für eure Hinweise... ich werde versuchen, die Informationen an den genannten Stellen zu finden und hoffe, dass meine Kenntnisse dafür ausreichen 🙂