Dypso Backoffice
Dypso Backoffice


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)