Techniques
Cette section permet de regrouper un ensemble de techniques ou de scripts qui ont l'originalité d'arriver à résoudre une difficulté avec le moindre effort ou qui sont particulièrement efficaces...
Techniques /Contrôler MSN Messenger depuis VB6 ou VBScript
Sur une page Web comme dans une application construite en Visual Basic 6 ou .Net, il est possible de communiquer avec l'API de Msn Messenger, pour effectuer des tâches plus ou moins ludiques :
- Obtenir la liste de vos contacts
- Gérer vos contacts
- Envoyer un mail
- Envoyer un message
Cela laisse même la porte ouverte à la création d'un Bot qui répondra à votre place,
ou enverra des messages à votre place...
De mon côté, il ne s'agissait que d'éprouver cette technique et d'en explorer assez rapidement, je l'avoue les possibilités.
Mais libre à vous de pousser plus loins vos recherches...
Pour ce nouveau tutorial si vous exécuter les scripts depuis VBScript, il vous suffit de télécharger la dernière version de MSN Messenger.
Dans l'autre cas vous devez bien évidemment posséder Visual Basic 6.
Créer un nouveau projet sous Visual Basic 6. Puis ajouter une référence en sélectionnant le menu Projet/Référence, puis choisisser : "Messenger API Type library". Cela vous permettra facilement d'accéder aux variables de l'API et de référencer votre objet MSN MESSENGER le plus simplement du monde.
Pour vous permettre de manipuler votre objet MSN et pouvoir détecter les évènements du type un message vient d'arriver,(etc.) nous allons définir une variable globale au script dans la partie des déclarations (première ligne de script sur la form):
Public WithEvents msn As Messengerapi.Messenger
Maintenant nous allons réellement initialisé l'objet msn pour qu'il puisse détecter votre session MSN ouverte sur MSN Messenger. Sur l'évènement _Load de la Form :
Private Sub Form_Load() Set msn = New Messengerapi.Messenger end sub
A partir de là il nous est par exemple possible de créer une ListBox appelée list1, et un bouton de commande sur la feuille Form1 afin de nous permettre de remplir la liste de nos contacts MSN en cliquant sur le bouton avec le code suivant :
Private sub command1_click() dim msncontact as imessengercontact dim msncontacts as imessengercontacts set msncontacts = msn.mycontacts for each msncontact in msncontacts list1.additem (msncontact.signinname) next End Sub
D'autres fonctionnalités sont encore possibles, par exemple changer votre statut sur absent :
private sub command1_click() msn.MyStatus = MISTATUS_AWAY 'D'autre valeurs sont possibles ' msn.MyStatus = MISTATUS_BE_RIGHT_BACK ' msn.MyStatus = MISTATUS_BUSY ' ... end sub
Ajouter un contact :
private sub command1_click() msn.AddContact 0, "dypso@hotmail.com" SendKeys "{ENTER}" Pause 1 SendKeys "{ENTER}" end sub
Supprimer un contact
private sub command1_click() dim msncontact as imessengercontact dim msncontacts as imessengercontacts set msncontacts = msn.mycontacts Set MsgrContact = msn.GetContact("test@hotmail.com",_ msn.MyServiceId) Call MsgrContacts.Remove(MsgrContact) end sub
Envoyer un message à un contact :
private sub command1_click() ' ouvre la fenêtre de message Set MsnWindow = msn.InstantMessage("dypso@hotmail.com") 'Envoyer un certain message SendKeys "Ceci est un message test" Pause 0.1 SendKeys "{ENTER}" SendKeys "{ENTER}" end sub
Voici le code de la fonction Pause destinée à laisser la tâche s'accomplir :
Sub Pause(interval) Current = Timer Do While Timer - Current < Val(interval) DoEvents Loop End Sub
Comme énoncé plus haut l'ensemble du code peut être réécrit en VBScript, seulement la référence et la création d'un objet Messenger se fera au travers d'une balise "<OBJECT>" :
<OBJECT classid=clsid:B69003B3-C55E-4B48-836C-BC5946FC3B28 codeType=application/x-oleobject id=IMessenger width=0 height=0"> </OBJECT>
Ici l'objet est invisible dans la page HTML et il reste accessible depuis le VBScript ou JScript avec le nom IMessenger, par exemple proposer l'envoi d'uin message à un contact particulier :
<OBJECT classid=clsid:B69003B3-C55E-4B48-836C-BC5946FC3B28 codeType=application/x-oleobject id=IMessenger width=0 height=0"> </OBJECT> <a href=VBScript:IMessenger.InstantMessage("test@hotmail.com")> test@hotmail.com</a>
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'dypso'@'172.20.245.55' (using password: YES) in /mnt/110/sdb/3/1/dypso/include/tools.php on line 106
Impossible de se connecter : Access denied for user 'dypso'@'172.20.245.55' (using password: YES)