当然,从任何对话窗口,简单的“/psm new message
”将更新消息状态字段。
但编程:
你会发现这里VB source file发出了一个新的消息,你的Live Messenger的窗口的PSM(个人萨特斯消息)。可能会有所帮助。
提取物:
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
/psm“技巧”不起作用。刚刚在14.0.5027.908(目前的公开测试版)上尝试过。 – 2008-11-10 12:36:34
同样,代码也没有。 FindWindow为MSBLWindowClass返回0。 – 2008-11-10 12:44:13