Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Winampin soittaman kappaleen tutkiminen

esakom [31.01.2005 20:18:16]

#

Jos haluat tehdä sovelluksen joka tietää mitä kappaletta Winamp soittaa, esimerkiksi soitettujen kappaleiden listausta ja tilastointia varten, tässä on esimerkki miten tieto kaivetaan. Tämän pitäisi toimia kaikkien Winampin versioiden kanssa.

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Const lpClassName = "Winamp v1.x"
Private Const strTtlEnd = " - Winamp"

Private Function HaeWinampKappale() As String
    Dim hwnd As Long
    hwnd = FindWindow(lpClassName, vbNullString)    'etsitään winamp

    Dim lpText As String * 100

    If hwnd = 0 Then    'ei löytynyt
        HaeWinampKappale = "Ei kappaletta"
        Exit Function
    End If

    Dim intLength As Integer
    intLength = GetWindowText(hwnd, lpText, Len(lpText)) 'haetaan kappaleen nimi

    If (intLength <= 0) Or (intLength > Len(lpText)) Then   'ei onnistunut
         HaeWinampKappale = "Tuntematon"
         Exit Function
    End If

    'oletetaan että onnistui, luetaan alusta todellinen teksti
    Dim strTitle As String
    strTitle = Mid$(lpText, 1, intLength)

    'otetaan vielä mahdollisesti ylimääräinen Winamp teksti lopusta pois
    Dim winampViiva As Integer
    winampViiva = InStr(1, strTitle, strTtlEnd, vbTextCompare)
    If winampViiva > 1 Then
        strTitle = Left$(strTitle, winampViiva)
    End If
    HaeWinampKappale = Trim$(strTitle)

End Function

sooda [03.02.2005 10:31:59]

#

Entäs jos winampissa soi kappale nimeltä "Ei kappaletta" tai "Tuntematon" tai semmonen jossa on "- Winamp" nimessä? :)

esakom [03.02.2005 12:23:35]

#

No sitten se sanoo että kappaleen nimi on "Ei kappaletta" tai "Tuntematon". (Mutta näyttää kyllä lisäksi kappaleen numeron) Jos siellä on "- Winamp" se ottaa sen pois, niin kuin tarkoituksella tuohon koodasin.

Bill Keltanen [03.02.2005 14:46:07]

#

hmm mähän tommosen oon tehnykki.. :O

arcatan [03.02.2005 20:30:17]

#

Hohoo, enpäs tota sillon joskus ajatellutkaan, että noinkin vois tehä. Tuolla mun yhessä koodivinkissä on tuo fawkzilta (onkohan se Putkassa vielä fawkz vai thefox...) ripattu Winampin APIa käyttävä koodi...

https://www.ohjelmointiputka.net/koodivinkit/23886-pascal-id3-tagin-lukija

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta