vous trouverez ci joint quelques exemples pour piloter MSN Messenger et Windows Messenger depuis Excel.
Exemples testés avec Windows XP , Excel2002 , Windows Messenger 4.7 et MSN Messenger 7.5
Cette 1ere partie présente des procédures qui fonctionnent dans les 2 applications
Q. Comment vérifier si une session est ouverte ?
------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub verifierConnectionSession_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim objMessenger As MessengerAPI.Messenger Set objMessenger = New MessengerAPI.Messenger If objMessenger.MyStatus = MISTATUS_OFFLINE Or MISTATUS_UNKNOWN Then MsgBox "non connecté" Else MsgBox "connecté" End If End Sub
Q. Comment fermer la session ?
--------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub fermerSession_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger Msn.Signout End Sub
Q. Comment afficher le nombre de contacts ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub nombreContacts_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Dim Contacts As IMessengerContacts Set Msn = New MessengerAPI.Messenger Set Contacts = Msn.MyContacts MsgBox Contacts.Count End Sub
------
Q. Comment boucler sur l'ensemble des contacts et afficher des informations sur chacun d'entre eux ?
----------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub listeEtInformationsContacts_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Dim Contacts As MessengerAPI.IMessengerContacts Dim Contact As MessengerAPI.IMessengerContact Set Msn = New MessengerAPI.Messenger Set Contacts = Msn.MyContacts For Each Contact In Contacts Debug.Print Contact.SigninName Debug.Print Contact.Status Debug.Print Contact.FriendlyName Next End Sub
Q. Comment ajouter un contact ?
------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub ajoutContact_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" 'pour Windows messenger ,la creation est effectuee automatiquement 'pour MSN messenger ,la procedure affiche la boite de dialogue de creation Dim objMessenger As MessengerAPI.Messenger Set objMessenger = New MessengerAPI.Messenger objMessenger.AddContact 0, "nouveauContact@hotmail.fr" End Sub
Q. Comment supprimer un contact ?
---------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub supprimerContact_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Dim Contacts As MessengerAPI.IMessengerContacts Dim Contact As MessengerAPI.IMessengerContact Set Msn = New MessengerAPI.Messenger Set Contacts = Msn.MyContacts Set Contact = Msn.GetContact("leProfil@hotmail.com", Msn.MyServiceId) Contacts.Remove Contact End Sub
Q. Comment afficher des informations sur un contact spécifique ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub informationsContactSpecifique_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Dim Contact As MessengerAPI.IMessengerContact Set Msn = New MessengerAPI.Messenger Set Contact = Msn.GetContact("leProfil@hotmail.com", Msn.MyServiceId) Debug.Print Contact.SigninName Debug.Print Contact.Status Debug.Print Contact.FriendlyName End Sub
Q. Comment bloquer ou débloquer un contact ?
-----------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub bloquerUnContact_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Dim Contact As MessengerAPI.IMessengerContact Set Msn = New MessengerAPI.Messenger Set Contact = Msn.GetContact("leProfil@hotmail.com", Msn.MyServiceId) Contact.Blocked = True 'et pour le débloquer 'Contact.Blocked = False End Sub
Q. Comment intercepter l'évènement "réception des messages instantanés" ?
Insérez cette procedure dans un UserForm.
Si vous recevez un message instantané alors que l'USF est affiché, un MsgBox indique le nom de l'émetteur et le contenu du message.
-----------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Option Explicit Public WithEvents msn As MsgrObject Private Sub UserForm_Initialize() Set msn = New MsgrObject End Sub Private Sub msn_OnTextReceived(ByVal pIMSession As Messenger.IMsgrIMSession, _ ByVal User As Messenger.IMsgrUser, ByVal bstrMsgHeader As String, _ ByVal Usersay As String, pfEnableDefault As Boolean) MsgBox "Vous avez reçu un message de : " & User.FriendlyName & vbLf _ & vbLf & Usersay End Sub
Cette 2eme partie présente des procédures spécifiques à MSN Messenger
Q. Comment afficher la boîte de dialoque pour se connecter ?
----------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub afficherBoiteDialogue_ouvertureSession_MSN_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger Msn.Signin 0, "monProfil@hotmail.fr", "password" ' 'si vous avez paramétré automatiquement le profil et le mot de passe: 'Msn.AutoSignin End Sub
Q. Comment compter le nombre de messages contenus dans la boite de réception (hotmail) ?
-------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub nombreMessagesBoiteReception_MSN_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger MsgBox Msn.UnreadEmailCount(MUAFOLDER_INBOX) End Sub
Q. Comment afficher quelques informations sur mon profil ?
-------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub informations_monProfil_MSN_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger Debug.Print Msn.MyFriendlyName Debug.Print Msn.MyPhoneNumber(MPHONE_TYPE_MOBILE) Debug.Print Msn.MyPhoneNumber(MPHONE_TYPE_WORK) Debug.Print Msn.MyPhoneNumber(MPHONE_TYPE_HOME) Debug.Print Msn.MySigninName Debug.Print Msn.MyStatus Debug.Print Msn.MyServiceId Debug.Print Msn.MyServiceName End Sub
Q. Comment afficher la page de création d'un mail ?
--------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub pageEnvoiMail_MSN_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Dim Contact As MessengerAPI.IMessengerContact Set Msn = New MessengerAPI.Messenger Set Contact = Msn.GetContact("leProfil@hotmail.fr", Msn.MyServiceId) Msn.SendMail Contact End Sub
Q. comment afficher la fenêtre d'envoi de message instantané ?
----------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub fenetreEnvoiMessageInstantane_MSN_MESSENGER() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Dim Contact As MessengerAPI.IMessengerContact Set Msn = New MessengerAPI.Messenger Set Contact = Msn.GetContact("leProfil@hotmail.com", Msn.MyServiceId) Msn.InstantMessage Contact End Sub
Q. Comment récupérer votre version de MSN Messenger ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger MsgBox Hex(Msn.Property(MMESSENGERPROP_VERSION)) Set Msn = Nothing
---------------
Q. Comment changer l'image de la carte de visite ?
-----
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub changerImageCarteVisite() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger Msn.MyProperty(2) = "C:\Documents and Settings\michel\dossier\nomimage.jpg" End Sub
Q. Comment afficher la boîte de réception Hotmail associée à votre session MSN ?
------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub afficherBoiteReceptionHotMail() 'cette procedure présume que votre session MSN est deja ouverte Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger Msn.OpenInbox End Sub
Q. Comment afficher quelques boîtes de dialogue sur les paramètres MSN ?
------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub afficherBoitesDialoguesParametresMSN() 'necessite d'activer la reference "Messenger API Type Library" Dim Msn As MessengerAPI.Messenger Set Msn = New MessengerAPI.Messenger Msn.OptionsPages 0, MOPT_ACCOUNTS_PAGE 'fenetre options generales 'Msn.OptionsPages 0, MOPT_CONNECTION_PAGE 'fenetre connection 'Msn.OptionsPages 0, MOPT_GENERAL_PAGE 'fenetre options personnelles 'Msn.OptionsPages 0, MOPT_PHONE_PAGE 'fenetre options telephone 'Msn.OptionsPages 0, MOPT_PRIVACY_PAGE 'fenetres options confidentielles End Sub
Q. Comment lister le nom des groupes ?
---------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub listerNomsGroupes() Dim MSN As MessengerAPI.Messenger Dim msGrpes As IMessengerGroups Dim msGrp As IMessengerGroup Set MSN = New MessengerAPI.Messenger Set msGrpes = MSN.MyGroups For Each msGrp In msGrpes MsgBox msGrp.Name Next End Sub
Q. Comment déplacer un contact (emailContact@hotmail.com) vers un groupe spécifique ?
--------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub deplacerContactExistantVersGroupeSpecifique() Dim MSN As MessengerAPI.Messenger Dim msGrpes As IMessengerGroups Dim msGrp As IMessengerGroup Set MSN = New MessengerAPI.Messenger Set msGrpes = MSN.MyGroups For Each msGrp In msGrpes If msGrp.Name = "nomGroupe" Then msGrp.AddContact "emailContact@hotmail.com" Next End Sub
Cette 3eme partie présente des procédures spécifiques à Windows Messenger
Q. Comment envoyer un message ?
--------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub envoiMessage_WINDOWS_MESSENGER() 'necessite d'activer la reference "Messenger 1.0 Type Library" Dim objImsg As Messenger.MsgrObject Dim Contact As Messenger.IMsgrUser2 Dim imHeader As String imHeader = "Mime-Version: 1.0" & vbCrLf & _ "Content-Type: text/plain; charset=UTF-8" & vbCrLf & vbCrLf Set objImsg = New Messenger.MsgrObject Set Contact = _ objImsg.CreateUser("leProfilDestinataire@hotmail.com", objImsg.Services.PrimaryService) Contact.SendText imHeader, "Bonjour , comment allez vous ?", MMSGTYPE_NO_RESULT End Sub
Q. Comment boucler sur l'ensemble des contacts et afficher des informations sur chacun d'entre eux ?
-------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub listeContacts_WINDOWS_MESSENGER() 'necessite d'activer la reference "Messenger 1.0 Type Library" Dim Contact As Messenger.IMsgrUser Dim X As New Messenger.MsgrObject For Each Contact In X.List(0) Debug.Print Contact.LogonName Debug.Print Contact.EmailAddress Debug.Print Contact.FriendlyName Debug.Print Contact.State Next Contact End Sub
Q. Comment modifier votre statut de connection ?
----------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub modifierStatutConnection_WINDOWS_MESSENGER() 'necessite d'activer la reference "Messenger 1.0 Type Library" Dim Msn As MsgrObject Set Msn = New MsgrObject 'Msn.LocalState = MSTATE_INVISIBLE 'hors connection Msn.LocalState = MSTATE_AWAY 'Absent 'Msn.LocalState = MSTATE_ONLINE 'en ligne 'Msn.LocalState = MSTATE_BUSY 'occupé 'Msn.LocalState = MSTATE_BE_RIGHT_BACK 'de retour dans une minute 'Msn.LocalState = MSTATE_AWAY 'absent 'Msn.LocalState = MSTATE_ON_THE_PHONE 'au téléphone 'Msn.LocalState = MSTATE_OUT_TO_LUNCH 'parti manger End Sub
Partager