Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, faq, codes sources, astuces pour VBA
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/10/2006, 09h56   #1
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
Par défaut [FAQ VB/VBA] Piloter MSN et Windows Messenger

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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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
----------
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 19h07   #2
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
Dis, tu nous ferais pas un petit tuto à publier, plutôt que des Q/R FAQ ?

Ca me semble bien approprié, non ?
__________________
Vous vous posez une question, la réponse est peut-être ici :
Toutes les FAQs VB
Les Cours et Tutoriels VB6/VBScript
Les Sources VB6


Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

MioSkins.org : le site de référence pour GPS et PDA Mitac MIO
iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 13h34   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Les deux sont complémentaires, j'aime bien trouver les affaires dans la FAQ, c'est plus rapide que d'aller chercher le tuto.
Rien que pour mettre mon grain de sel
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 18h07   #4
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
Bonjour à vous deux ... ;o)

Je vais regarder si j'ai de quoi alimenter un tutoriel. ça fait un petit moment que je ne n'ai pas utilisé MSN et je ne sais pas trop quelle est la derniere version du logiciel à utiliser pour des tests.


bonne soirée
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2008, 11h57   #5
Invité régulier
 
Inscription : janvier 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 5
Points : 5
Points : 5
Ces sources sont excellentes pour les bases d'un contrôle à distance de msn via Excel !! Malheureusement, j'ai quelques soucis, pour le OnTextReceived ça ne semble marcher qu'avec la vieille version Windows Messenger installée par défaut. Celle ci ne présente-t-elle pas des failles de sécurité ?

quelles sources pouvez vous me conseiller pour me créer moi même un plugin de réception des messages ?

merci beaucoup
Gorzyne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 19h23   #6
Invité de passage
 
Inscription : janvier 2008
Messages : 22
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 22
Points : 4
Points : 4
Super les codes, controler msn via exel mais par exemple, est t'il possible de par ces codes faire en sorte d'ouvrir la liste de contact?

Une fois que l'on est connécte avec la liste de tout les contact
The_link est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 17h34   #7
Invité régulier
 
Inscription : janvier 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 5
Points : 5
Points : 5
Par défaut Pas d'accord

Le OnTextReceive ne marche que avec Windows Messenger 4.7 et pas MSN, quelqu'un a une solution ou a réussi à se procurer le plugin, je suis coincé à cet endroit depuis des mois
Gorzyne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2009, 16h06   #8
Invité régulier
 
Inscription : janvier 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 5
Points : 5
Points : 5
Par défaut WLM

quelqu'un sait où ça en est avec les dernières versions de Windows Live Messenger, s'il y a des fonctionnalités qui ont été apportées en plus ?

Gorz,
Gorzyne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 16h13   #9
Candidat au titre de Membre du Club
 
xxx Rock'n'Skate
Étudiant
Inscription : février 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : xxx Rock'n'Skate
Âge : 19
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2010
Messages : 26
Points : 13
Points : 13
Envoyer un message via MSN à rocknboard
est qu'il y a une autre fonction Pour afficher le mot de pass Du MSN comme la fonction ( textbox.text = msn.myfriendlyname) ?
rocknboard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h14.


 
 
 
 
Partenaires

Hébergement Web