IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[FAQ VB/VBA] Piloter MSN et Windows Messenger [Fait]


Sujet :

Contribuez

  1. #1
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    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 : 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
    ----------

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    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

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    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

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    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

  5. #5
    Membre régulier Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 323
    Points : 115
    Points
    115
    Par défaut
    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

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    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

  7. #7
    Membre régulier Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 323
    Points : 115
    Points
    115
    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

  8. #8
    Membre régulier Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 323
    Points : 115
    Points
    115
    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,

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur génie électrique et informatique industrielle
    Inscrit en
    Février 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur génie électrique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2010
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    est qu'il y a une autre fonction Pour afficher le mot de pass Du MSN comme la fonction ( textbox.text = msn.myfriendlyname) ?

Discussions similaires

  1. Piloter MSN et Windows Messenger
    Par SilkyRoad dans le forum Contribuez
    Réponses: 1
    Dernier message: 22/07/2013, 10h53
  2. windows messenger et msn
    Par mspeach dans le forum Windows XP
    Réponses: 1
    Dernier message: 10/11/2008, 13h38
  3. API MSN Messenger ou Windows Messenger
    Par CLion dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 25/11/2006, 03h34
  4. Outlook et windows messenger
    Par wareq dans le forum Outlook
    Réponses: 4
    Dernier message: 03/09/2005, 08h54
  5. Demarrer MSN & Windows Messengers
    Par wareq dans le forum Messagerie instantanée
    Réponses: 2
    Dernier message: 06/08/2005, 21h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo