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.
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
Wow.... que rapidez, gracis colega. lo pruebo y te cuento cmo me fue.
neuvamente gracias.
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.