VB.NET質問スレ (Part18)
■ このスレッドは過去ログ倉庫に格納されています
0759デフォルトの名無しさん
2006/12/27(水) 02:51:36途中の区切文字は"\0"であって、
chr(0)でもchrW(0)でもvbNullCharでもvbNullStringでもString.EmptyでもNothingでもない。
Structure COPYDATASTRUCT
Dim dwData As Int32
Dim cbData As Int32
Dim lpData As IntPtr
End Structure
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal data As IntPtr) As IntPtr
Private Declare Ansi Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Sub SongNameSendToMessenger()
Dim dtstrct As New COPYDATASTRUCT
Dim buf As String = Nothing
Const WM_COPYDATA As Integer = &H4A
buf = "OrgApp\0Music\01\0{0} - {1}\0曲名\0アーティスト名\0アルバム(シングル)名" & vbNullChar
dtstrct.dwData = 1351
dtstrct.cbData = buf.Length * 2
dtstrct.lpData = Marshal.StringToHGlobalUni(buf)
Dim MyPointer As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(dtstrct))
Marshal.StructureToPtr(dtstrct, MyPointer, False)
Dim hWnd As IntPtr = FindWindow("MsnMsgrUIManager", Nothing)
Dim ret As IntPtr = SendMessage(hWnd, WM_COPYDATA, 0, MyPointer)
Marshal.FreeHGlobal(MyPointer)
End Sub
■ このスレッドは過去ログ倉庫に格納されています