Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks
Autor
Nachricht
^^kev####
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 476
Wohnort: Haan

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.

Funktion:
Visual Basic: [code]Imports System.Runtime.InteropServices

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

Data.dwData = 1351
Data.lpData = VarPtr(Buffer)
Data.cbData = Buffer.Length * 2

Handle = FindWindowEx(0, Handle, "MsnMsgrUIManager", Nothing)

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]

Quelle: dotnet-snippets.de
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks

Tags: messenger, windows, höre

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1039 30.10.2009, 11:26
Keine neuen Beiträge IntStr()funktion 1177 11.10.2007, 08:49
Keine neuen Beiträge TopMost Funktion unter DirectX 921 27.07.2007, 10:48
Keine neuen Beiträge Wie Funktion nutzen ? 1102 29.06.2007, 20:59
Keine neuen Beiträge update funktion einbauen 1341 28.01.2007, 23:11
 



[ Time: 0.1352s ][ Queries: 81 (0.0289s) ][ GZIP on - Debug on ]