2008-11-08 7 views
2

Je veux être en mesure de changer le message d'état pour Live Messenger, mais tout ce que j'ai trouvé ne fonctionne que pour le message musical (voir this screenshot pour voir la différence entre les deux).Comment puis-je programmer le message d'état pour Live Messenger?

Il est possible de le faire, car il existe des programmes qui ont la capacité de le modifier, et certains clients alternatifs pour Live Messenger peuvent également définir le message d'état eux-mêmes. J'ai juste besoin de savoir comment faire ça moi-même.

Clarification: La solution doit fonctionner avec les dernières versions de Live Messenger (c'est-à-dire la version 3 beta). Travailler avec des versions plus anciennes est également bon, mais ce sont les versions 14.x avec lesquelles je travaille.

Répondre

1

Il n'y a aucun moyen de programmation de la mise en l'état Live Messenger message qui fonctionne avec les versions compris des Live Wave 3.

1

Bien sûr, à partir de toutes les fenêtres de conversation, un simple "/psm new message" mettrait à jour le champ d'état du message.

Mais programme:

Vous trouverez ici un VB source file qui a envoyé un nouveau message à la PSM (Personal Satus message) de Windows Messenger Live. Peut être cela aiderait.

Extrait:

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 
+0

Le "truc"/psm ne fonctionne pas. Juste essayé sur 14.0.5027.908 (la version bêta publique actuelle). –

+0

De même, le code ne le fait pas non plus. FindWindow renvoie 0 pour MSBLWindowClass. –

+0

Fonctionne parfaitement sur le 8.5.1302.1016 – VonC

1

Vous pouvez installer sur votre MSN MsgPlus qui vous donnera une API pour programmer sur MSN. Vous pouvez ensuite créer un script qui appelle votre programme ou un programme qui appelle MSN.

+0

Je ne vais pas remplir mes programmes avec une tierce partie pour faire quelque chose que je peux accomplir sans dire cruft. Faire cela est totalement irresponsable. –

0

Vous pourriez peut-être aller pour les fonctions en désordre fenêtres autour du travail, en utilisant l'API pour simuler l'entrée d'utilisateur. Chris, comment programmer le message musical par programme?

1

Questions connexes