Windows Live Messenger "Was ich gerade höre" setzten Verfasst am: 29.06.2009, 13:02
Beschreibung: Mit dieser Klasse kann man - wie man es vom Windows Media Player kennt - sich in MSN bzw. Windows Live Messenger anzeigen lassen was man gerade hört. Es wird einfach mittels SendMessage ein String-Parameter an den Messenger geschickt und der zeigt den Text dann in das entsprechende Feld "Was ich gerade höre". Diese Funktion muss aber im Messenger aktiviert sein.
Public Class MSNStatusMessage Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _ ByVal hWnd1 As Integer, _ ByVal hWnd2 As Integer, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) _ As Integer
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal Hwnd As Integer, _ ByVal wMsg As Integer, _ ByVal wParam As Integer, _ ByVal lParam As Integer) _ As Integer
Private Const WM_COPYDATA As Short = 74
Private Structure COPYDATASTRUCT Public dwData As Integer Public cbData As Integer Public lpData As Integer End Structure
Public Enum EnumCategory As Integer Music = 0 Games = 1 Office = 2 End Enum
Public Shared Sub SendStatusMessage(ByVal Enable As Boolean, ByVal Category As EnumCategory, Optional ByVal Message As String = "") Dim Data As COPYDATASTRUCT Dim Buffer As String = "\0" & Category.ToString + "\0" & IIf(Enable, "1", "0") & "\0{0}\0" & Message & "\0\0\0\0" & Chr(0) & "" Dim Handle As Integer = 0
If Handle > 0 Then SendMessage(Handle, WM_COPYDATA, 0, VarPtr(Data)) End If End Sub
Private Shared Function VarPtr(ByVal e As Object) As Integer Dim GC As GCHandle = GCHandle.Alloc(e, GCHandleType.Pinned) Dim GC2 As Integer = GC.AddrOfPinnedObject.ToInt32 GC.Free() Return GC2 End Function End Class[/code]