Une interface graphique pour le robot MSN
août 24
Si je n’ai pas posté ces derniers jours, c’est que j’étais à fond dan l’amélioration de mon bot MSN actuel. J’ai reçu beaucoup d’aide de la part d’Alvin (ou PyroFrissons) qui m’a permis de passer mon bot « console » à un bot « graphique » ! (voir le screen) L’application est vraiment plus jolie qu’une console et tout ça sans bug et avec quelques nouvelles fonctionnalités. Nous allons bientôt refaire un tutoriel et partager le code source. Si vous n’avez pas encore tester MadBot v0.4 :

Pour les plus impatients, une liste des nouvelles fonctionnalités :
- Ajout de l’interface graphique. :razz:
- Ajout d’une fonction permettant la connexion à une base de données MySQL ainsi que quelques exemples comme le stockage de tous les messages dans une table « bot_historique »
- Ajout d’une fonction permettant enfin de choisir la couleur et la police des messages envoyés et de visualiser dans la « console » les réponses du robot
- Ajout d’un dispositif permettant la réduction de l’application dans le Systray
- Et pleins d’autres petites choses…
Toutes les fonctions citées ci-dessus seront détaillées dans un gros tutoriel très prochainement. Je rappelle aussi que je ne travaille plus tout seul pour le bot et qu’il faudra bien évidemment féliciter PyroFrissons pour son énorme travail.
Allez à la prochaine release les amis.
EDIT : Et voilà le dernier tuto by Greg et Pyro en date !

Voilà, maintenant il n’y a plus beaucoup de confidence sauf sur la source
On vous fait un truc qui sera très bien et pas trop chiant (enfin vous nous donneraient vos appréciations)
Et oui un peu de suspense mais pas trop.
Bon courage
Merci :smile:
Je suis en train de me casser la tête à essayer de rajouter quelques options!!
Vous allez être étonné je pense même si sa n’offrira peut-être pas toutes les options disponible dans le version 2 de mon bot (sur redstation.fr)
Bonsoir,
Es-ce que quelqu’un sait comment faire en C# pour vérifier si le message qu’un contact écrit au bot comporte :
- Tel nombre de caractères
- Vérifie si le dernier caractère est bien tel lettre
Exemple :
imaginons qu’on n’attend que le robot demande le numero de tel d’un contact :
le contact lui répond mon num est : 0123344556
Comment verifier que le msg comporte exactement 10 caracteres et qu’il commence bien par un 0
Voilà, je pense que ça peut être utile pour beaucoup d’autres choses par la suite.
Merci de m’aider
J’ai pensé à ce genre des script :
// Chaine de caracteres verifiant qu’il s’agit de 10 nombres
Regex regCode = new Regex (« [0-9_]{10} »);
string strCode = msg;
Match monMatch = regCode.Match(strCode);
if (monMatch.Success)
{
session.send(TextPerso(session, « Num de Tel valide! »));
Console.Out.WriteLine(« [=== Num TEL ===] : » msg);
}
else { session.send(TextPerso(session, « Num de Tel invalide »));}
}
Mais j’ai un petit souci au niveau de Regex :???:
Si quelqu’un pourrait m’aider ça serait cool.
:???: Tu m’assassine là, je ne sais pas faire ce genre de trucs et même pas sous PHP, même si je sais les utiliser!!!
J’aurais fait autrement et je vais en parler pour plus de précision (prend plus de place certainement) ::
string[] msg_contact = message.getString().Split(new Char[] {‘ ‘}); // Pour séparer les différents mots et les vérifier
int i; // On créer le compteur
int numerotel; // On créer la variable nombre
while ( msg_contact[i] != « » && numerotel == 0 ) { // Et voilà une boucle
try { // On va vérifier si ce mot est contient seulement des chiffres
if ( msg_contact[i].Length == 10 ) // On vérifie la présence de 10 chiffres
numerotel = Convert.ToInt32(msg_contact[i]); // Conversion en nombre si possible
}catch{}
i ; // On incrémente le compteur
}
if ( numerotel != 0 ) {
// Insérez ce que vous voulez en relation avec l’action
}
Voilà je crois que sa fonctionnera comme ceci, maintenant à vous de trafiquer (j’ai pas essayé) !!!
Et pour savoir ) quoi correspond un caractère il y a une chose simple ::
monstring.SubString(0, 1); // On récupère des caractères
Pour approfondit, le 0 correspond au caractère de départ!
On peut commencer par le dernier caractère simplement avec ceci ::
monstring.Length – 1 // On est à l’avant dernier caractère là
Pour le 1 du début juste après le zéro, c’est le nombre de caractère que l’on veut prendre après la position choisi par le 0 ou la position de votre choix!!!
Si vous avez mal comprit vous pouvez m’écrire :: pyrofrissons@redstation.fr
J’avais écrit un petit script pour t’expliquer comment j’aurais procéder mais au rafraichissement je ne l’ai pas vue sur la page, tempi
Re,
————————————————————–
// Chaine de caracteres verifiant qu’il s’agit de 10 nombres
Regex regCode = new Regex (« 0[0-9]{9} »);
string strCode = msg;
Match monMatch = regCode.Match(strCode);
if(monMatch.Success) {
session.send(TextPerso(session, « Num Tel ok ! »));
Console.Out.WriteLine(« [=== Num TEL Valide ===] : » msg); }
————————————————————-
Cela marche mais voici mon problème maintenant :

exemple quand on met :
0123456789 => Ca marche ! le bot répond bien : Num Tel ok !
012345678 => Ca ne marche pas ! normal
123456789 => Ca ne marche pas ! normal aussi
01234567891 => Par contre là ça marche ! alors que normallement ça ne devrait pas marcher ! :???:
En fait ce qu’il se passe, c’est comme si le regex {9} l’interprete comme n >= 9 et non pas n = 9
PyroFrissons pourrait tu m’aider car là je sèche. Je voudrais que le regex « 0[0-9]{9} » soit valide avec pour seulement tous les numeros commencant par un 0 et qui font 10 chiffres exactement.
Pour t’aider il y a un moyen, simplement en vérifiant le nombre de caractère de la chaine ::
if ( msg.Length == 10 ) …
Si msg est un string sinon pour le transformer il faut l’utiliser comme ceci ::
if ( msg.ToString().Length == 10 ) …
Ou quand c’est autre chose ::
if ( msg.getString().Length == 10 ) …
Je viens en même temps annoncer que je viens de terminer la version sans MySQL avec sauvegarde dans un fichier du programme!!
Aucun test n’a était fait car mon robot ne répond à rien mais les autres fonctionnent toujours
Je suis à peu prêt à 75% de la version avec MySQL et dés que celle-ci sera fini je demanderai à Greg de les publiés avec un bon tutoriel que l’on aura préparé à deux (il est plus doué là dedans :grin: )
bonjout a tous
greg peut tu me rajoute dans ton msn stp car je voudrais savoir si il y a pas un autre moyen pour connecte notre bot car avec cette platforme la: sp.incesoft.com c moyen tro instable defoi il veut pas me connecte mon bot pendan plusieur H apre il marche apre il ne remarche pas ect ect c chiant si il y a une autre platforme peut tu me la donner le bou du code quil faudra changer dans la source stp
merci davance
Personnellement, je ne connais pas d’autres sites proposant ce système.
Il y a un moyen mais tu devra tout faire de A à Z.
Ce moyen est tout simplement « MSN DotNet » qui est une source qui permet de tout faire comme sur MSN mais il n’y a que les bases, donc il faudrait seulement faire tout!!
Peut-être un de c’est quatre matin je le ferai mais comme les bugues sont très présents, je préfère cette solution!
Tiens, je viens de trouver un site qui propose plusieurs SDK donc ce que tu cherchais!!!
http://www.robotinvaders.com/main/About.aspx
je vais regarder ceux qu’ils valent aussi…
Non c’est bon PyroFrissons, j’ai finallement réussi à trouver
il suffit juste de rajouter (« ^0[0-9] » « {9}$ »);
Enfin voilà, sinon ça serait possible que tu me dise comment faire pour faire le lien entre un Formulaire (Form1 par défaut) et le Robot ?
Exemple : J’ai un formulaire contenant une textbox, et je veux que lorsque tel message est reçu, celui-ci s’écrit dans la textbox du form.
Comment faire car je ne peux pas mettre qqch du genre : Form1.textBox1.Text = « test »;
Car Form1 n’est pas actuellement dans le contexte du robot.cs même s’il fait parti du projet. Merci de m’aider
Bonjour à tous,
J’ai pu télécharger Toutes les version pour le Bot Msn, Graphique ou Non.
Au départ le pseudo Msn est bien en absent, je connecte alors le système et au bout de 2 ou 3 min, le pseudo passe en « En Ligne »
Malgrès cela, rien ne fonctionne, j’envois des messages, Aucune réponse ou Bien plus tard, 5 à 10 min, le message d’erreur de Msn :
Message n’à pas pu être transmis.
Quelqu’un aurait une solution ?
Merci de votre aide.
GuillaumeD
Ok Luffy, et pour ton problème de transfère vers la form au début j’en ai chier comme pas possible quand j’ai commencé à programmer le bot (mon premier en C#) et j’ai trouvé une solution dérivé de moi même car toutes celles proposées sur internet sont pas chouettes!
Cette solution consiste à faire passer des variables statiques disponible pour les deux branches (d’un même namespace bien sur)!
Dans la class qui n’a pas de form, insère tes variables directement comme ceci ::
public static string mastring; // mastring est un nom
public static int maint; // maint est un nom
public static bool mabool; // mabool est un nom
Ensuite elles te seront disponible de la form est directement dans la class où tu les a mises, mais tu va certainement te dire que sa ne t’avance pas trop!
Dans les versions graphique de mon bot (disponible sur mon forum) j’ai positionné un timer à interval très court (de l’ordre de 10 millièmes de seconde) ce qui pourra au maximum afficher une réponse à chaque passage du timer!
Pour ce faire il faut tout simplement placer une condition qui vérifie si ta variable est nulle comme ceci ::
if ( maclass.mavariable != « » )
{
// Positionner l’action d’affichage de `maclass.mavariable`
maclass.mavarible = null; // mise à zéro pour ne pas réafficher en boucle
}
J’espère que sa t’aidera, pour moi sa marche très bien!!
Salut GuillaumeD, j’ai trouvé le problème qui n’était pas très simple à déceler!!
Tous ceux qui sont connecté grâce aux serveurs UE (Union Européenne) ne pourront avoir d’évènement car celui-ci a des difficultées.
Déconnectez tout vos comptes Incesoft puis changer de serveur et reconnectez les après!!
Tout devrait refonctionner ou fonctionner pour certains…
Bonne continuation, tous!
PyroFrissons, tu pourrais m’ajouter sur msn ? luffy21@msn.com
Merci
ouuuaaa..
Merciiiiiiiiiiiiiiiiii
Heureux que sa face plaisir à quelqu’un ^^
Pyrofrissons, désolé pour ta longue explication qui est passé par l’anti-spam des commentaires, je l’ai revalidée de retour du Futuroscope donc Luffy tu peux la relire maintenant. :smile:
Je finalise en ce moment le bot version sans MySQL, la version avec MySQL avance lentement mais surement pour offrire les même options que la version simple!!
Les deux versions seront publiées en même temps donc il faudra vous armez de patience
Je suis impatient de tester ça moi. :idea:
PyroFrissons peut tu re-explique un peut mieux pour la couleur du text du robo jai pas bien compris ta premier explication sur un de tes pots a la premier page :(
merci
sinn peut tu me rajouter dans tes contact stp : eleganceblack@hotmail.fr
J’ai remarqué que maintenant le problème des évènements du bot sont apparu sur les autres serveurs d’Incesoft!!
Pour ne plus avoir ce problème, il n’y a plus que la patience car on peut contacter Incesoft seulement pour demander des informations ou acheter le produit professionnel!
Elemontik pour la couleur du texte, tu ajoutes cette fonction avant la classe de réception du message par exemple :
public IRobotMessage Txtperso(IRobotSession session, string message){
IRobotMessage msg = session.createMessage();
msg.FontName = "Verdana";
msg.FontColor = System.Drawing.Color.Black;
msg.setString(message);
return msg;
}
Et au lieu d’envoyer le msg comme ceci :
session.send("Le message");Tu l’envoies comme ça :
session.send(Txtperso(session, "Le message"));PS : Bien sur tu peux remplacer le nom « Txtperso » par celui de ton choix !
Pour changer la couleur tu dois t’attaquer à cette ligne ::
msg.FontColor = System.Drawing.Color.Black;
Pour afficher les couleurs disponible il faut que tu tape ceci ::
msg.FontColor = System.Drawing.Color
Et que depuis le clavier et pas en copie, tu rajoute le point!
De suite tu vera un menu contextuel s’afficher en te proposant un panneau de couleurs en tout genre
merci bocoup poue les re-explication
ca marche tre bien
maintenant j’ai un autre soucy :(
quand je test mon bot et que jouvre la fenetre pour lui parler defoi il detect pa l’arrive dans la console :( donc quand je lui parle il me dit sa ex : salut reponse du robo : RE : salut :(
ou sinn directement a louvertur tj quand il detecte pas l’arrive dun utilisateur il menvoie mon speudo msn comme ceci
biento affilie EVO Fans de jeux vidéos venez découvrir EVO
typing « http://www.incesoft.com » to start a web page
que fair ?
j’aimerai quil detect toute les ouverture de fenetre sans probleme …
c’est posible sans erreur car certain robo que jai rajouter reste conect H24 et mon jamai envoie le speudo du proprio ou encor me repete ce que jai dit ..
merci de me repondre
Euh, je n’ai pas tout compris à ce que tu racontes exactement mais le fait que le bot ne se connecte pas immédiatement à l’utilisateur est un fait normal. Il dépends de plusieurs facteurs comme la surcharge des serveurs Incesoft, du temps de réponse entre l’ordinateur du contact et de l’hôte.
Pour ma part je n’ai pas vraiment ce problème car mon bot est hébergé 24/24h sur un serveur dédié à 100Mbits/s gentiment prêté par Sundark de Sundark’s PlanetZ.
ok merci greg pour l’info je vais fair de meme je croi
:razz:
greg : peut tu me dire comeme ou et la ligne de code qui menvoie ce message la ( cad ) mon pseudo msn suivi de: typing “http://www.incesoft.com” to start a web page , quand jouvre la fenetre de discution avec mon robo ?
cela ce produi meme quand la conection et etabli : « server logged in » donc je comprent pas… et de plusse q’uil menvoie le message ( mon speudo msn )suis de typing “http://www.incesoft.com” to start a web page
quand je lui parle ex salut il me repond : RE: salut il repete tout ce que je dit avec RE: devant
parcontre quand je ferme la fenetre et que je la re-ouvre et que dans la console je voie eleganceblack@hotmail.fr…. arrive
et que je lui parle : la il me repond corectement :( donc je conpren pa tre bien
jespere que tu ma compri lol
merci de me donner une explication si tu peut car ce probleme ne doit pa marrive qua moi lol
T’as du faire une cou*** à un endroit du code forcément.
Je te conseille donc d’attendre la version graphique du bot comme annoncé dans cet article qui va arriver demain logiquement. Tes bugs n’apparaitront plus et tu sera surement ravi de toutes les nouvelles fonctionnalités.
greg c encor moi lol
jaite entrin de me demander comment peut ton heberger un bot :?:
peut tu mexpliqué les etape stp ?
je supose que ce n’est pas gratuit
je pose un server d’hebergement pour un site internete pro je ne pouré pas men servire ?
merci de me reponde
je suis chiant je c mais ce bot bien fait jen ai vraiement besoin lol
Moi je suis hebergé chez Sundark’s PlanetZ, c’est payant mais pas trop cher et la connexion est superbe ! Après faut voir si t’as vraiment besoin d’un hébergement payant pour ce que tu veux faire.
ok greg jatten la nouvel version pour demain allor
jespere que sa sera pa tro complique a metre en oeuvre :( un tuto sera join ?
comme pour la version actuel ?
merci de rep
Je viens de terminé le tutoriel et la moitié des images associés et ensuite je m’attaque à la mise en page pour vous seulement :razz:
Le tutoriel est bien gros et grossi de plus en plus avec toutes ces images
D’ici quelques heures il sera disponible sur mon site http://www.redstation.fr et ici enfin je me comprend, sur un autre article car plus de 300 lignes sa fait mal
Voilà, tout est disponible sur mon forum et dans très peu de temps sur ce blog, Greg écrira un message pour vous prévenir
http://forums.redstation.fr/viewtopic.php?p=995
Et voilà tuto posté avec quelques modifs. :???:
Donc @ tout le monde :
Merci de poster vos commentaires sur le dernier article en date relatant du bot à partir de maintenant : http://blog.gregmarchal.com/the-big-tuto-bot-msn-par-greg-et-pyrofrissons/