Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0567: Winamp fernsteuern

 von 

Beschreibung 

Mit diesem Tipp kann man Winamp fernsteuern.

Update am 23. September von Tobias:
Im Quellcode ist nun auch ein Kommentar vorhanden, wie man Winamp 5 ansteuern kann.

Schwierigkeitsgrad:

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

FindWindowA (FindWindow), GetWindowTextA (GetWindowText), SendMessageA (SendMessage)

Download:

Download des Beispielprojektes [4,69 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Projekt1.vbp -------------
' Die Komponente 'Microsoft Windows Common Controls 6.0 (SP6) (MSCOMCTL.OCX)' wird benötigt.

'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "cmdID3"
' Steuerelement: Schaltfläche "cmdOpenURL"
' Steuerelement: Schaltfläche "cmdOpenFile"
' Steuerelement: Schaltfläche "cmdPLEnd"
' Steuerelement: Schaltfläche "cmdPLStart"
' Steuerelement: Schaltfläche "cmdClose"
' Steuerelement: Schaltfläche "cmdPL"
' Steuerelement: Schaltfläche "cmdEQ"
' Steuerelement: Schaltfläche "cmdMW"
' Steuerelement: Rahmensteuerelement "Frame1"
' Steuerelement: Beschriftungsfeld "lblChannels" auf Frame1
' Steuerelement: Beschriftungsfeld "lblBitrate" auf Frame1
' Steuerelement: Beschriftungsfeld "lblSample" auf Frame1
' Steuerelement: Beschriftungsfeld "Label4" auf Frame1
' Steuerelement: Beschriftungsfeld "Label3" auf Frame1
' Steuerelement: Beschriftungsfeld "Label2" auf Frame1
' Steuerelement: Schaltfläche "cmdVolIncr"
' Steuerelement: Schaltfläche "cmdVolDecr"
' Steuerelement: Slider "sldVol"
' Steuerelement: Schaltfläche "cmdNext"
' Steuerelement: Schaltfläche "cmdFFW"
' Steuerelement: Schaltfläche "cmdStop"
' Steuerelement: Schaltfläche "cmdPause"
' Steuerelement: Schaltfläche "cmdPlay"
' Steuerelement: Schaltfläche "cmdFRW"
' Steuerelement: Schaltfläche "cmdPrev"
' Steuerelement: Slider "sldLength"
' Steuerelement: Timersteuerelement "Timer1"
' Steuerelement: Beschriftungsfeld "Label1"
' Steuerelement: Beschriftungsfeld "lblTime"
' Steuerelement: Beschriftungsfeld "lblSongName"

'Option Explicit
'
'Autor: Mario Zeller <Mario@ActiveVB.de>
'
'Hinweis: Funktioniert nicht mit Winamp 3.0!

Option Explicit

Private Sub cmdClose_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_CLOSE, 0
End Sub

Private Sub cmdEQ_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_TOGGLEEQ, 0
End Sub

Private Sub cmdFFW_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_FFW, 0
End Sub

Private Sub cmdFRW_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_FRW, 0
End Sub

Private Sub cmdID3_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_INFOBOX, 0
End Sub

Private Sub cmdMW_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_TOGGLEMW, 0
End Sub

Private Sub cmdNext_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_NEXT, 0
End Sub

Private Sub cmdOpenFile_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_OPENFILE, 0
End Sub

Private Sub cmdOpenURL_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_OPENURL, 0
End Sub

Private Sub cmdPause_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_PAUSE, 0
End Sub

Private Sub cmdPL_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_TOGGLEPL, 0
End Sub

Private Sub cmdPlay_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_PLAY, 0
End Sub

Private Sub cmdPLEnd_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_PLEND, 0
End Sub

Private Sub cmdPLStart_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_PLSTART, 0
End Sub

Private Sub cmdPrev_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_PREV, 0
End Sub

Private Sub cmdStop_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_STOP, 0
End Sub

Private Sub cmdVolDecr_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_VOLDECR, 0
End Sub

Private Sub cmdVolIncr_Click()
    SendMessage WA_hwnd, WM_COMMAND, WA_VOLINCR, 0
End Sub

Private Sub Form_Load()
    ' Eine Winamp Instance finden, wenn keine Vorhanden abbrechen
    ' Findwindow funktioniert mit Winamp 2 und 5
    ' Beide hören auf den Titel "Winamp v1.x"
    WA_hwnd = FindWindow("Winamp v1.x", vbNullString)
    
    If WA_hwnd = 0 Then
        MsgBox "Winamp ist im Moment nicht aktiv. Bitte erst starten!"
        Unload Me
        End
    End If
    
    DONTCHANGEBAR = False
End Sub

Private Sub sldLength_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    DONTCHANGEBAR = True
End Sub

Private Sub sldLength_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    SendMessage WA_hwnd, WM_USER, sldLength.Value * 1000, WA_SEEK
    DONTCHANGEBAR = False
End Sub

Private Sub sldVol_Scroll()
    SendMessage WA_hwnd, WM_USER, sldVol.Value * 25.5, WA_VOLUME
End Sub

Private Sub Timer1_Timer()
    On Error Resume Next
    
    Dim lngCurrentTime As Long
    Dim lngTrackTime As Long
    Dim strCurrentMin As String
    Dim strCurrentSec As String
    Dim strTrackMin As String
    Dim strTrackSec As String
    
    'Zeiten holen
    lngCurrentTime = SendMessage(WA_hwnd, WM_USER, 0, WA_TIME)
    lngTrackTime = SendMessage(WA_hwnd, WM_USER, 1, WA_TIME)
    
    'Slider einstellen
    If DONTCHANGEBAR = False Then
        sldLength.Max = lngTrackTime
        sldLength.Value = lngCurrentTime \ 1000
    End If
    
    'Zeiten umrechnen und anzeigen
    lngCurrentTime = lngCurrentTime \ 1000
    strCurrentMin = AddZeroes(Trim(Str(lngCurrentTime \ 60)))
    strCurrentSec = AddZeroes(Trim(Str(lngCurrentTime - 60 * (lngCurrentTime \ 60))))
    
    strTrackMin = AddZeroes(Trim(Str(lngTrackTime \ 60)))
    strTrackSec = AddZeroes(Trim(Str(lngTrackTime - 60 * (lngTrackTime \ 60))))
    
    lblTime.Caption = strCurrentMin & ":" & strCurrentSec & "/" & _
        strTrackMin & ":" & strTrackSec
    
    'Songtitel anzeigen
    lblSongName.Caption = GetSongName
    
    'TrackInfos setzen
    lblSample.Caption = SendMessage(WA_hwnd, WM_USER, 0, WA_TRACKINFO)
    lblBitrate.Caption = SendMessage(WA_hwnd, WM_USER, 1, WA_TRACKINFO)
    lblChannels.Caption = SendMessage(WA_hwnd, WM_USER, 2, WA_TRACKINFO)
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'--------- Anfang Modul "Module1" alias Module1.bas ---------
Option Explicit

Public Declare Function GetWindowText Lib "user32" _
    Alias "GetWindowTextA" ( _
    ByVal hwnd As Long, _
    ByVal lpString As String, _
    ByVal cch As Long _
    ) As Long
    
Public Declare Function FindWindow Lib "user32" _
    Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String _
    ) As Long
    
Public Declare Function SendMessage Lib "user32" _
    Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long _
    ) As Long

Public DONTCHANGEBAR As Boolean

Public Const WM_COMMAND As Long = &H111&
Public Const WM_USER As Long = &H400&
Public WA_hwnd As Long

' Dies sind nur einige der vielen vorhandenen Konstanten.
' All denjenigen, welche weitere Infos benötigen, sei die Seite
' http://www.winamp.com/nsdn/winamp2x/dev/sdk/api.jhtml
' ans Herz gelegt.
' Manche der Konstanten funktionieren nur mit Winamp-Versionen
' neuer als 2.05!

'Konstanten zur Steuerung via WM_COMMAND
Public Const WA_PREV = 40044        'Previous track button
Public Const WA_NEXT = 40048        'Next track button
Public Const WA_PLAY = 40045        'Play button
Public Const WA_PAUSE = 40046       'Pause/Unpause button
Public Const WA_STOP = 40047        'Stop button
Public Const WA_FADESTOP = 40147    'Fadeout and stop
Public Const WA_STOPTRACK = 40157   'Stop after current track
Public Const WA_FFW = 40148         'Fast-forward 5 seconds
Public Const WA_FRW = 40144         'Fast-rewind 5 seconds
Public Const WA_PLSTART = 40154     'Start of playlist
Public Const WA_PLEND = 40158       'Go to end of playlist
Public Const WA_OPENFILE = 40029    'Open file dialog
Public Const WA_OPENURL = 40155     'Open URL dialog
Public Const WA_INFOBOX = 40188     'Open file info box
Public Const WA_TOGGLEEQ = 40036    'Toggle EQ
Public Const WA_TOGGLEPL = 40040    'Toggle playlist editor
Public Const WA_TOGGLEMW = 40258    'Toggle main window visible
Public Const WA_VOLINCR = 40058     'Raise volume by 1%
Public Const WA_VOLDECR = 40059     'Lower volume by 1%
Public Const WA_CLOSE = 40001       'Close Winamp
Public Const WA_AUDIOCD = 40323     'Play audio CD

'Konstanten for WM_USER

'Gibt die Versionsnummer zurück
Public Const WA_VERSION = 0

'Gibt bei wParam=0 die Spielzeit und bei wParam=1 die Tracklänge zurück
Public Const WA_TIME = 105

'Setzt die Position auf wParam in ms
Public Const WA_SEEK = 106

'Setzt die Lautstärke in wParam von 0 bis 255
Public Const WA_VOLUME = 122

'Setzt die Balance in wParam zwishcen 0 und 255. 128=Mitte
Public Const WA_PANNING = 123

'Gibt bei 0 die Sampe-, bei 1 die Bitrate und bei 2 die Channels zurück
Public Const WA_TRACKINFO = 126

'Fügt der Zeit fehlende Nullen hinzu
Function AddZeroes(strAdd As String) As String
    If Len(strAdd) = 1 Then
        AddZeroes = "0" + strAdd
    Else
        AddZeroes = strAdd
    End If
End Function

'Extrahiert den Titel das aktuellen Songs
Function GetSongName() As String
    On Error Resume Next
    
    Dim strTitle As String
    strTitle = String(2048, " ")
    
    GetWindowText WA_hwnd, strTitle, Len(strTitle)
    
    GetSongName = Left$(strTitle, InStr(strTitle, "- Winamp") - 1)
End Function
'---------- Ende Modul "Module1" alias Module1.bas ----------
'-------------- Ende Projektdatei Projekt1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 26 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von GKWelz am 05.09.2009 um 18:53

Hallo,

o.g. Coding funktioniert bestens. Wollte eigene Erweiterungen einbauen, leider ist die angegebene Seite http://www.winamp.com/nsdn/winamp2x/dev/sdk/api.jhtml für weitere Konstanten nicht mehr vorhanden.

Wo kann ich die Konstanten finden?

Vielen Dank.

Gruß
gkwelz

Kommentar von piper am 21.05.2009 um 00:51

Hi Mario
Vielen Dank für den Code. Er liefert keine Angaben zum laufenden Stream (oder File). Habe gegoogelt und eine sehr effektive und robuste Funktion <GetPlayingFileName> gefunden. Für alle die's interessiert.

cheers
Alfred


Source:
http://msmvps.com/blogs/ch21st/archive/2004/02/26/3279.aspx

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpszClassName As String, ByVal lpszWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" _
(ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Private Const PROCESS_VM_READ As Long = &H10

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const WM_USER As Long = &H400
Private Const IPC_GETPLAYLISTFILE As Long = 211
Private Const IPC_GETLISTPOS As Long = 125

Private Declare Function ReadProcessMemory Lib "kernel32" _
(ByVal hProcess As Long, ByVal lpBaseAddress As Long, _
ByRef lpBuffer As Any, ByVal nSize As Long, ByRef lpNumberOfBytesRead As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const MAX_PATH As Long = 260
Private hWndWinamp As Long

Private Function GetWinampWindow() As Long
GetWinampWindow = FindWindow("Winamp v1.x", vbNullString)
End Function



Public Function GetPlayingFileName() As String
Dim strFileName As String
Dim lp As Long, lpWinamp As Long
Dim iIndex As Long
Dim PID As Long
Dim bRet As Long
Dim dwRead As Long
Dim Buffer(MAX_PATH) As Byte
Dim Temp As String

hWndWinamp = GetWinampWindow
If hWndWinamp = 0 Then
GetPlayingFileName = ""
Exit Function
End If

iIndex = SendMessage(hWndWinamp, WM_USER, 0, IPC_GETLISTPOS)
lp = SendMessage(hWndWinamp, WM_USER, iIndex, IPC_GETPLAYLISTFILE)
If lp = 0 Then
GetPlayingFileName = ""
Exit Function
End If
Call GetWindowThreadProcessId(hWndWinamp, PID)
'
lpWinamp = OpenProcess(PROCESS_VM_READ, 0, PID)
If lpWinamp = 0 Then
GetPlayingFileName = ""
Exit Function
End If
bRet = ReadProcessMemory(lpWinamp, lp, Buffer(0), MAX_PATH, dwRead)
Call CloseHandle(lpWinamp)

Temp = StrConv(Buffer, vbUnicode)
strFileName = Left$(Temp, InStr(Temp, Chr$(0)) - 1)

GetPlayingFileName = strFileName

End Function



Kommentar von Anyway am 02.03.2009 um 21:24

Woher kommen denn bitte die Constants? Wie kann man die denn überhaupt bestimmen?

Kommentar von Thomas Frosch am 29.07.2008 um 21:36

kann man auch irgendwie die Lautstärke auslesen?

Kommentar von Balmung am 10.11.2007 um 21:54

Problem solved!

Ich habe statt GetWindowText -> GetWindowTextW genommen (welches ich nach längerem googlen entdeckt hab)...

jetzt brauch ich nur noch die daten korrekt umwandeln und fertig bin ich :)

mfg Balmung

Kommentar von Balmung am 10.11.2007 um 21:19

Ich hab bei dem code ein kleines Problem, und zwar mit der Kodierung im Titel.
Wenn ich den Titel mit dem oben angegeben Code auslesen, werden Asiatische Zeichen in Fragezeichen umgewandelt.

Siehe hier:
http://junemaster.ju.funpic.de/niff/strTitle.png

Kennt vielleicht jemand eine Lösung, wie ich die korrekten ID3v2 Tags, wie sie winamp bei mir anzeigt auslesen kann? (ohne auf die originale mp3 zugreifen zu müssen, da es sich ja auch um einen Stream handeln könnte)

Ich wäre für jede hilfe dankbar

mfg Balmung

Kommentar von PRE am 06.01.2006 um 13:24

ich habe noch eine kleine verbesserung!

'TrackInfos setzen
lblSample.Caption = SendMessage(WA_hwnd, WM_USER, 0, WA_TRACKINFO) & " kHz"
lblBitrate.Caption = SendMessage(WA_hwnd, WM_USER, 1, WA_TRACKINFO) & " kbps"
If SendMessage(WA_hwnd, WM_USER, 2, WA_TRACKINFO) = 1 Then lblChannels.Caption = "Mono"
If SendMessage(WA_hwnd, WM_USER, 2, WA_TRACKINFO) = 2 Then lblChannels.Caption = "Stereo"
If SendMessage(WA_hwnd, WM_USER, 2, WA_TRACKINFO) < 1 Then lblChannels.Caption = "???"
If SendMessage(WA_hwnd, WM_USER, 2, WA_TRACKINFO) > 2 Then lblChannels.Caption = "Dolby Souround"
End Sub



gruß PRE


Kommentar von Daniel R. am 05.01.2006 um 21:31

Für alle die's einfacher haben wollen oder die Probleme mit dem Code haben:

http://www.winamp.com/plugins/details.php?id=144432

Kommentar von Kriechi am 18.11.2005 um 19:29

aber ich muss ihm doch erstmal sagen "so jetzt wird gespielt, beim klick dann pausieren,..."
nur wie?

danke

Kommentar von Passo am 18.11.2005 um 19:06

Naja, du packst beides in die click-funktion, lässt aber je nach button.caption-wert die eine oder eben die andere funktion ausführen und die beschriftung ändern

Kommentar von Kriechi am 18.11.2005 um 18:11

Hallo!
einfach genial1
aber wie kann ich play und pause auf einen button legen?
drücken pause, nochmal drücken wieder play.

mfg

Kommentar von Jc am 26.10.2005 um 21:51

Ja die aktuelle m3u auslesen wo gerade gespielt wird.

Kommentar von Capone am 26.10.2005 um 19:04

Du könntest das mit der Html-Playlist erzeugen machen ^^
also das man die auslesen kann, wäre das ok? oder vllt ne .m3u auszulesen

Kommentar von Jc am 26.10.2005 um 01:50

Hi Leute,

ich hab mal so ne kleine Frage ich müsste die Playliste wo gerade in Winamp gespielt wird in eine ListBox einfügen, bitte um Hilfe !!!

Danke schon mal

By Jc

Kommentar von Capone am 11.04.2005 um 20:49

 Function GetSongName() As String
Dim strTitle As String

strTitle = String(2048, " ")
GetWindowText WA_hwnd, strTitle, Len(strTitle)

If InStr(strTitle, "- Winamp") - 1 > 0 Then
GetSongName = _
Left$(strTitle, InStr(strTitle, "- Winamp") - 1) + _
" - Play"
End If

If InStr(strTitle, "- Winamp [Stopped]") - 1 > 0 Then
GetSongName = _
Left$(strTitle, InStr(strTitle, "- Winamp [Stopped]") - 1) + _
" - Stop"
End If

If InStr(strTitle, "- Winamp [Paused]") - 1 > 0 Then
GetSongName = _
Left$(strTitle, InStr(strTitle, "- Winamp [Paused]") - 1) + _
" - Pause"
End If

End Function


Gibt sicher eleganteres aber seinen zweck erfüllt es, man hat somit auch den namen bei pause oder stop, und das steht (is klar) auch mit da :)

Hab nen (jetzt noch) Provisorischen Webcontroller gebaut, man sieht nur was ich gerade abspiele is aber lustig wnen man sich das so angucken kann ^^

http://home.arcor.de/3-u/Winamp%20Servercontroll.exe

Update kommt noch aber:
1. zu faul
2. keine zeit
3. ich mach auch anderes ;D

Das Progg liest einfach eine txt auf nem Webspace aus die durch eine php datei verändert wird die wird wiederrum von meinem pc aus gefüttert xD na wenns den spass macht =P

Kommentar von Stefan am 11.03.2005 um 21:01

Einfach Klasse was für ein Service es hier gibt.....Vielen Dank

Kommentar von Buegeleisenschoner am 16.04.2004 um 23:07

auch lustig ist wwwinamp von Nullsoft und HALO 8
(googeln), damitz kann man winamp übers web fernsteuern
funzt mit allen winamps...

Kommentar von Passo am 10.12.2003 um 16:14

hab mir was zammengebastelt... nicht sehr elegant, funzt aber (sofern ein lied am Laufen is ^^)

Dim hwnd As Long
Dim txt As String
txt = String(255, Chr(0))
hwnd = FindWindow("Studio", vbNullString)
Call GetWindowText(hwnd, txt, 255)
txt = Left(txt, InStr(1, txt, Chr(0)) - 1)
txt = Mid(txt, InStr(1, txt, ".") + 2, Len(txt))
For i = 1 To 2
For j = Len(txt) To 1 Step -1
If Mid(txt, j, 1) = "(" Then
txt = Left(txt, j - 2)
Exit For
End If
Next j
Next i
MsgBox txt

Kommentar von Passo am 10.12.2003 um 13:49

Kann mir einer ein Beispiel geben, wie ich das mit winamp3 mache?
Es reicht, wenn der Titel ausgelesen wird
Big Thx

Kommentar von MaTTEvIL am 30.09.2003 um 22:08

Hi ich wollt mir ein MP3 fernsteuerungstool fuer counter strike zusammenbauen. Wi schaff ich das das wenn ich auf ne Taste drück das z.B. ein Track vorgespult wird ??

Kommentar von Nukeduke am 09.07.2003 um 16:50

Ich würde gerne die aktuelle Lautstärke auslesen....

Außerdem steht in dem Tipp nicht, wie ich Min und MAx für den Volume-Slider einstellen muss!!

Kommentar von D. Schüler am 19.05.2003 um 13:56

Ich habe mir schon vor langer Zeit den code von www.winamp.com hergenommen und ein "AmpControl" gebaut.
Es ist eine art "minimalbedienung" für Winamp 2.x. Es ist jetzt in der Version 2.0.
Zu finden auf http://www.schueler-page.de im Bereich "Downloads"

Gruß

D. Schüler

Kommentar von Gerrit am 07.04.2003 um 15:04

Es hat sich erledigt. Man bin ich blöd! :-P
Ist das einfach...!!

Kommentar von Gerrit am 07.04.2003 um 14:22

Ich will WinAmp gar nicht fernsteuern, sondern nur auslesen welches Lied gerade abgespielt wird. Geht das auch?
Danke schon mal!

MfG Gerrit

Kommentar von FanatiX am 26.02.2003 um 17:51

tjo winamp3 kennt keine sendmessage weil xml basierend...musst schon die hWnd von jedem steuerelement auf der oberfläche von wa3 auslesen, dann kannste die buttons alle seperate ansprechen...

Kommentar von Flo am 29.01.2003 um 08:37

hi

funktioniert aber leider net mit Winamp3

mfg Flo