mostrar lo qe estoy escuchando ¿como?

Iniciado por SERBice, 16 Abril 2008, 19:41 PM

0 Miembros y 1 Visitante están viendo este tema.

SERBice

desearia saber como hacer para ue mi programa (un reproductor) muestre lo que esta reproduciendo en "lo que estoy escuchando" del msn

¿alguna api?, necesitaria algo que no provoque un error critico y tire el prgorama e casod e que el msn no este instalado o no se pueda comunicar con el mismo.

he buscado y no encontre nada, si alguien peude darme una manito estare agradecido.

desde ya, muchas gracias.

naderST


Option Explicit

Private 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
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Type COPYDATASTRUCT
  dwData As Long
  cbData As Long
  lpData As Long
End Type

Private Const WM_COPYDATA = &H4A

'Private Sub Form_Load()
   'Call SetMusicInfo("Myself", "Debut", "The Song That Never Ends")
'End Sub

' eg: Call SetMusicInfo("artist", "title", "album")
' eg: Call SetMusicInfo("artist", "title", "album", "WMContentID")
' eg: Call SetMusicInfo("artist", "title", "album", , "{1} by {0}")
' eg: Call SetMusicInfo("", "", "", , , False)
Public Sub SetMusicInfo(ByRef r_sArtist As String, ByRef r_sAlbum As String, ByRef r_sTitle As String, Optional ByRef r_sWMContentID As String = vbNullString, Optional ByRef r_sFormat As String = "{0} - {1}", Optional ByRef r_bShow As Boolean = True)

   Dim udtData As COPYDATASTRUCT
   Dim sBuffer As String
   Dim hMSGRUI As Long
   
   'Total length can not be longer then 256 characters!
   'Any longer will simply be ignored by Messenger.
   sBuffer = "\0Music\0" & Abs(r_bShow) & "\0" & r_sFormat & "\0" & r_sArtist & "\0" & r_sTitle & "\0" & r_sAlbum & "\0" & r_sWMContentID & "\0" & vbNullChar
   
   udtData.dwData = &H547
   udtData.lpData = StrPtr(sBuffer)
   udtData.cbData = LenB(sBuffer)
   
   Do
       hMSGRUI = FindWindowEx(0&, hMSGRUI, "MsnMsgrUIManager", vbNullString)
       
       If (hMSGRUI > 0) Then
           Call SendMessage(hMSGRUI, WM_COPYDATA, 0, VarPtr(udtData))
       End If
       
   Loop Until (hMSGRUI = 0)

End Sub


SERBice

Wow.... que rapidez, gracis colega. lo pruebo y te cuento cmo me fue.

neuvamente gracias.

SERBice

#3
Ha funcionado de mil maravillas, muchisima gracias.

EDIT: Alguien sabe cmo hacer el proceso apuesto?, es decir, leer lo que ya esta puesto en "Lo que estoy escuchando" del msn.