Jump to content


Photo

Interagir Com Menseger


  • Faça o login para participar
1 reply to this topic

#1 automouse

automouse

    Turista

  • Usuários
  • 37 posts
  • Sexo:Não informado

Posted 02/07/2006, 18:34

O que fazem os programadores para fazer um player interagir com o msn?
que linguagem dá pra ser feito isso?

valeu

#2 Graymalkin

Graymalkin

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 02/07/2006, 18:56

Qualquer linguagem que suporte chamadas à API do Windows (Visual Basic, Delphi, C++, etc.). Eu faço essa interação, em VB, no meu player (XPlayer)) através de um código que achei na net (coloque-o em um módulo):

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

' 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

Certo? ;)

Graymalkin
"Se pudéssemos conhecer todos os percalços do nosso destino, a vida seria tão demasiado cheia de esperança e medo, de louvor e decepção, que não nos deixaria uma única hora de paz verdadeira." (Nathaniel Hawthorne)
Participe você também da campanha "Eu sei escrever!"
Acesse: Graymalkin Software




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq