[..] Texte d'une conversation Msn

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

[..] Texte d'une conversation Msn

#1

Message par rougipa »

Bonjour,

Exécutant souvent des programmes en plein écran, j'aimerais lorsque je reçois un message via msn, l'afficher directement dans un coin de l'écran, sans avoir à faire alt+tab pour ouvrir la conversation.

Pour cela, j'ai tout simplement besoin de récupérer le texte d'une conversation.

Mais cela ne semble pas fonctionner. Que j'utilise le Window Info ou la fonction WinGetText sur une fenêtre de conversation, rien n'apparaît.

Pourtant les conversations contiennent bien du texte. Je ne vois pas où est le problème.

Si quelqu'un peut m'aiguiller, merci à lui ;)

EDIT: Je précise que j'aimerais récupérer les derniers messages de la conversation dans le bakcground, donc pas de "winactivate => ctrl + A, ctrl + C et hop" :(
Modifié en dernier par rougipa le mer. 02 nov. 2011 05:01, modifié 2 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#2

Message par Tlem »

Avez-vous utilisé le moteur de recherche du forum ?
Il me semble bien que quelqu'un d'autre à déjà travaillé sur 'la capture de l'arrivée d'un message dans MSN' en tache de fond.

Sinon, pour info, il existe d'autres outils que MSN Live Messenger .... :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#3

Message par rougipa »

Bonjour,
Tlem a écrit :Avez-vous utilisé le moteur de recherche du forum ?
Il me semble bien que quelqu'un d'autre à déjà travaillé sur 'la capture de l'arrivée d'un message dans MSN' en tache de fond.
J'ai utilisé le moteur de recherche du forum. Et je n'ai pas trouvé cela.
Tlem a écrit :Sinon, pour info, il existe d'autres outils que MSN Live Messenger .... :roll:
Le problème étant que je souhaite récupérer le texte d'une conversation msn, et pas celui d'un bloc-note ou quelque autre logiciel que ce soit, de messagerie instantannée ou non :roll:
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#4

Message par pierrotm777 »

Rien qu'en faisant une recherche sur 'msn udf autoit' voici quelques liens!
http://www.autoitscript.com/forum/topic/28633-msn-udf/
http://www.autoit.fr/forum/viewtopic.php?f=21&t=1727

Voilà :D
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#5

Message par rougipa »

Encore faudrait-il que ces liens me servent à quelque chose. Ce qui n'est pas le cas.
Merci quand même ...
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#6

Message par TommyDDR »

@rougipa : Je vous conseille de relire le 1er message du lien -> En entier, la réponse y est...
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#7

Message par rougipa »

Code : Tout sélectionner

#include<MSN.au3>
$msn = _msncreate()

while 1
sleep(100)
wend

Func _msn_OnTextReceived($IMSession, $IMUser, $MsgHeader, $MsgText, $Something)
if $msgtext = "hello" then
msgbox(0, "", "Someone said 'Hello' To you")
endif
if $msgtext = "logout" then
_msnlogoff($msn)
endif
EndFunc
Ce code est la "réponse" dont vous parlez ?
Je ne vois pas où sont définies les variables $IMSession, $IMUser, $MsgHeader, $MsgText, $Something, $msgtext :(
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#8

Message par TommyDDR »

$IMSession, $IMUser, $MsgHeader, $MsgText et $Something sont des paramètres, pas besoin de les définir.
Quand à la fonction, je pense qu'elle est appelé en CallBack par l'UDF lors de la réception d'un message (Donc pas besoin de s'occuper de savoir quoi envoyer en paramètre).

J'ose espérer que vous avez testé avant de poster votre dernier message ;)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#9

Message par rougipa »

La fonction n'est pas appellée en callback.
Pour appeller une fonction dépendant de paramètres, il est néccessaire de donner ces paramètres. Or comme je l'ai dit précédemment, je ne sais pas à quoi correspondent ceux-cis.

J'ose espérer que vous n'attendez moi que je teste un script qui ne fonctionne visiblement pas rien qu'en observant le code ;)
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#10

Message par TommyDDR »

Bon, puisque vous m'obligez à télécharger le script :

Après 13 secondes à lire l'UDF, je vois : $functions = ObjEvent($msn,"_msn_")

Après, je prends mon courage à deux mains et j'ouvre l'aide autoit sur ObjEvent :

Code : Tout sélectionner

ObjEvent ( $ObjectVar, "functionprefix" [, "interface name"] )
Je vois que "_msn_" correspond au "functionprefix" et la, ni une ni deux, je fais une transformation (j'ajoute un espace pour ceux qui n'auraient pas compris) ce qui nous donne function prefix, préfixe de fonction (pour les illettrés : quelque chose qui précède la fonction).

Cela ne vous rappelle pas quelque chose ? Indice :

Code : Tout sélectionner

[b][size=150][color=#FF0000]_msn_[/color][/size][/b]OnTextReceived
_msn_ = prefix
OnTextReceived = fonction

J'ose donc penser que l'objet messenger.msgrobject ou Messenger.MessengerApp va lancer une fonction OnTextReceived qui sera renvoyé vers _msn_OnTextReceived

Certes vous pouvez déduire que cela risque de ne pas marcher, mais créer un post complet parce que vous ne voulez pas appuyer sur "F5"... Gardez en tête qu'il est possible que vous ne connaissiez pas autoit sur le bout des doigts, encore plus lorsque vous passez par des Objets windows.
J'ose espérer que vous n'attendez moi que je teste un script qui ne fonctionne visiblement pas rien qu'en observant le code ;)
En effet, l'être humain ne peut imaginer avoir tort... et oui, je l'attendais...
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#11

Message par rougipa »

Je ne pars pas du tout du principe d'avoir raison et de connaitre tout sur tout sur l'AutoIt, sinon je ne pense pas que posterais sur un forum pour demander de l'aide :roll:

Malgré vos explications, je n'arrive pas à saisir le fonctionnement de ce simple code :|
Je ne vois pas de fonction OnTextReceived dans l'udf ou dans AutoIt même :(

Enfin, sachez que j'aimerais vraiment tester ce script en "appuyant sur F5". Ce n'est pas une quelconque "flemme" qui m'en empêche, mais simplement le fait qu'appeller une fonction sans connaître les paramètres requis est, pour moi, impossible.
Quel code pensez-vous qu'il faut exécuter ?
J'aurais bien tapé ceci mais évidemment sans paramètres, cela ne donne rien ..

Code : Tout sélectionner

_msn_OnTextReceived($IMSession, $IMUser, $MsgHeader, $MsgText, $Something)
Merci.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#12

Message par TommyDDR »

Pour simplifier : la fonction est appelée toute seule par MSN, il suffit juste de la déclarer comme montré dans l'exemple.

Code : Tout sélectionner

#include<MSN.au3>
$msn = _msncreate()

while 1
sleep(100)
wend

Func _msn_OnTextReceived($IMSession, $IMUser, $MsgHeader, $MsgText, $Something)
    msgbox(0,"Message", $MsgText)
EndFunc
(Je n'ai rien testé, c'est juste comme cela que je l'imagine (95% de chance que ça soit comme cela), ce n'est pas dit non plus que cet UDF ai été fait avec une ancienne version de MSN.)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#13

Message par rougipa »

Ah. Je ne savais pas qu'un logiciel pouvait appeller directement une fonction reconnue par AutoIt :shock:
Toujours est-il que cela ne fonctionne pas après essai sur les versions actuelles de Windows Live Messenger 2008 à 2011 :/

La résolution de mon problème n'a donc pas vraiment avancé :(
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#14

Message par TommyDDR »

Posted 04 July 2006 - 05:56 PM
Je doute que WLM 2011 était sorti en 2006 : x
Je pense que l UDF n'est pas utilisable avec votre version de msn.

Mais ce post vous aura appris qu'il ne faut pas se fier à "ça risque de ne pas marcher donc je ne test pas" et plutôt appuyer sur F5 pour en être sur ^^.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#15

Message par pierrotm777 »

J'aurais jamais du donner ce lien ! :?
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Texte d'une conversation Msn

#16

Message par TommyDDR »

Après avoir passé une bonne partie de l'après midi à trouver une solution à votre problème... Avec la version WLM 2011, il est impossible de récupérer le texte d'une discussion.

On ne peut pas le récupérer avec un ControlGetText()
Et l'objet COM 'Messenger.Automation.1 ne met plus à disposition la fonction "OnTextReceive"

Libre à vous de continuer à chercher mais je ne pense pas que cela soit possible..

Désolé.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
rougipa
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 14 oct. 2011 20:46
Status : Hors ligne

Re: [.] Texte d'une conversation Msn

#17

Message par rougipa »

Bien :/
Merci tout de même d'avoir pris la peine de consacrer du temps à la réslution de mon problème. :)

Si quelqu'un a une autre piste pour les dernières versions de Windows Live Messenger, qu'il n'hésite pas :roll:

► Afficher le texte
Répondre