Winamp Name des titles in Textbox kopieren

Peter86

Erfahrenes Mitglied
Hallo Programmierer,
ich weiß nicht ob ich hier richtig bin, aber mir wurde gesagt das ich mein problem mal in diesem Bereich schildern sollte.

Nun dazu, ich möchte das der Title der in Winamp gespielt wird automatisch, wenn ich einen Start button klicke in eine erstellte Textbox kopiert wird.
Wenn sich der Title ändert, der alte Title sich mit dem neuen in der Textbox ersetzt.
Und diese Funktion wäre mir auch noch wichtig, wenn sich der inhalt der Textbox ändert sich Timer1 einschaltet.
Ich bin neuling in sachen Programmieren.

Ich hab hier mal ein Screenhot meines Tools um es verständlicher zu machen.
HIER


Übrigens ich benutze VB2008.

Ich hoffe ihr könnt mir bei meinem Problem helfen, Danke.

Peter86
 
Zuletzt bearbeitet:
Danke Norbert!
Der Code funktioniert.
Da ich aber neuling bin hab ich leider 0 Ahnung wie ich diesen code jetzt in mein Tool einbau.
Könnte mir da evtl. jemand Helfen?

Nochmal was ich machen möchte,.
Ich möchte das wen ich den Button Start drücke automatisch den Namen des titles in eine Textbox kopiert und wenn sich der title ändert der neue title mit dem alten title in der Textbox ersetzt. Dazu möcht ich noch wen sich der title in der Textbox geändert hat sich Timer1 anschaltet.

Code:
Private Declare Auto Function FindWindow Lib "user32" ( _
  ByVal lpClassName As String, _
  ByVal lpWindowName As String) As IntPtr
Private Declare Auto Function GetWindowText Lib "user32" ( _
   ByVal hwnd As IntPtr, _
   ByVal lpString As String, _
   ByVal cch As Integer) As Integer
 
Private Const lpClassName = "Winamp v1.x"
Private Const strTtlEnd = " - Winamp"
 
Private Function GetWinampSong() As String
    Dim hwnd As IntPtr = FindWindow(lpClassName, vbNullString)
 
    Dim lpText As String
 
    If hwnd.Equals(IntPtr.Zero) Then Return "Not running"
 
    lpText = New String(Chr(0), 100)
    Dim intLength As Integer = GetWindowText(hwnd, lpText, _
      lpText.Length)
 
    If (intLength <= 0) OrElse (intLength > lpText.Length) _
             Then Return "Unknown"
 
    Dim strTitle As String = lpText.Substring(0, intLength)
    Dim intName As Integer = strTitle.IndexOf(strTtlEnd)
    Dim intLeft As Integer = strTitle.IndexOf("[")
    Dim intRight As Integer = strTitle.IndexOf("]")
 
    If (intName >= 0) AndAlso (intLeft >= 0) AndAlso _
            (intName < intLeft) AndAlso _
       (intRight >= 0) AndAlso (intLeft + 1 < intRight) Then _
        Return strTitle.Substring(intLeft + 1, intRight - intLeft - 1)
 
    If (strTitle.EndsWith(strTtlEnd)) AndAlso _
        (strTitle.Length > strTtlEnd.Length) Then _
        strTitle = strTitle.Substring(0, _
          strTitle.Length - strTtlEnd.Length)
 
    Dim intDot As Integer = strTitle.IndexOf(".")
    If (intDot > 0) AndAlso (IsNumeric( _
           strTitle.Substring(0, intDot))) Then _
        strTitle = strTitle.Remove(0, intDot + 1)
 
    Return strTitle.Trim
End Function
Quelle: CodeProject: Retrieve the Winamp song title with .NET


Hoffe auf antwort und hilfe, Danke.

Peter86
 
Zuletzt bearbeitet:
Du brauchst eigentlich nur die beiden Deklarationen und die Funktion GetWinampSong in deine Anwendung übernehmen. Danach einfach die Funktion aufrufen. Mehr solltest du eigentlich nicht machen müssen.
 
Entschuldigung Norbert,
aber ich versteh das nicht so ganz den Code bzw. das was du erwähnt hattest habe ich jetzt in mein Tool eingebaut, aber wie mache ich es jetzt das der name des Titles in die Textbox1 kopiert wird? Funktion aufrufen? Sorry, hab ich aber leider keine Ahnung von wie schon gesagt bin relativ neu in dem bereich.

Nehmen wir mal an mein code würde folgendermaßen aussehn:
Code:
Public Class Form1

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        'Textbox1
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Start Button
    End Sub
End Class
Was müsste ich tun?

Hoffe du kannst mir weiterhelfen.
Danke

Peter86
 
Zuletzt bearbeitet:
Danke Norbert,
das hat geklappt.
Doch wie mache ich es jetzt das wenn sich der Title ändert, der Title in der Textbox aktualisiert wird. Und wenn aktualisiert sich timer1 einschaltet.
Dies sind die letzten Punkte woran ich scheiter mein tool komplett zu machen.

Hoffentlich kannst du mir auch bei diesem Problem weiterhelfen.
Trotz alledem bin ich dir sehr dankbar, denn ohne dich wäre ich nicht soweit.

Peter86

Edit: Hat sich erledigt habs selber hinbekommen nach etwas Denken. Vielen Dank !
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück