もちろん、どの会話ウィンドウからでも、単純な " /psm new message
" でメッセージ ステータス フィールドが更新されます。
しかし、プログラム的に:
ここには、Live Messenger ウィンドウの PSM (Personal Satus Message) に新しいメッセージを送信したVB ソース ファイルがあります。それが役立つかもしれません。
エキス:
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
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 Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_COMMAND = &H111
Private Const WM_CHAR = &H102
Private Const VK_RETURN = &HD
Private Function SetPSM(ByVal text As String) As Boolean
Dim hParentWnd, hChildWnd As Long
SetPSM = False
hParentWnd = FindWindow("MSBLWindowClass", vbNullString)
If hParentWnd <> 0 Then
hChildWnd = FindWindowEx(hParentWnd, 0, "DirectUIHWND", vbNullString)
If hChildWnd <> 0 Then
PostMessage hParentWnd, WM_COMMAND, 56606, 0
Dim i As Integer
For i = 1 To Len(text)
Call PostMessage(hChildWnd, WM_CHAR, Asc(Mid$(text, i, 1)), 0)
Next i
PostMessage hChildWnd, WM_CHAR, VK_RETURN, 0
SetPSM = True
End If
End If
End Function
Private Sub cmdSetPSM_Click()
SetPSM txtPSM.text
End Sub