Bonjour Phylonia,
Le forum n'est pas mort du tout, je dirais qu'en moyenne les soucis remontés par les utilisateurs du nAiO reçoivent de l'aide directe en moins de 48h (plus souvent grâce à Abysse que moi, car en ce moment je suis pas mal pris par mon boulot) ! Je tiens aussi à dire tout de suite que "Le mieux est l'ennemi du bien" et "à vouloir aller trop vite, on se casse bien souvent la gueule". Ça semble hors contexte, mais ça prend tout son sens après mon laius ^^
Sinon, merci pour tes idées et tes retours, je vais essayer d'y répondre et expliquer certains choix qui ont été faits. Mais tout d'abord, je tiens à te signaler que le module
Connexion ne fonctionne pas avec le
nAiO 2 actuel. C'était un vieux module de la v1 qui n'a plus lieu d'être, la connexion à
Dofus faisant partie intégrante du
nAiO (c'est le connecteur par défaut). Si tu souhaites créer ton propre connecteur je te conseille plutot de jeter un oeil au code source de
CoWakfu [Lien SourceForge] ou directement celui du
nAiO à la ligne 6740
[Lien SourceForge]. Il y a aussi le topic sur la création de modules pour le
nAiO v2 qui te serait utile
[Lien]. Au moins tu partirais sur des bases compatibles avec le fonctionnement actuel.
Voila, maintenant je vais reprendre tes points dans l'ordre, ça sera plus simple :
Le fonctionnement que tu vois avec
TAB est propre à beaucoup d'ordinateurs, mais pas à tous, notamment sur les ordinateurs fonctionnant encore sous
Windows 7 ou sur ma vieille
Surface par exemple; si une évolution doit être mise en place, tu comprendras donc qu'il faut qu'elle soit utilisable par tous ou presque, et n’entraîne pas de régression chez les gens pour qui cela marche très bien
![Sourire :)](./images/smilies/icon_e_smile.gif)
Il en est de même pour le
Ctrl+A, car la sélection totale automatique dont tu parles en appuyant sur
TAB ne s'effectue pas toujours (parfois à cause d'un matériel comme le
Logitech G910, ou logiciel comme avec la langue de base de Windows) et pas toujours instantanément (j'ai entre un quart de seconde et une demi-seconde d'écart entre
TAB et le full sélect sur ma
Surface), ce qui efface le début du login qu'on avait commencé à taper.
Pour le TAB passant du champ login au champ password, son utilisation n'a pas été retenue car à moins d'un timeout complètement arbitraire, il arrive que la tabulation envoyée par AutoIt soit prise en compte avant la fin de l'envoi du login, ou plus rarement après le début de l'envoi du mot de passe. Ce qui donne des choses dans le client de jeu comme : login "MonEniri" / mot de passe "psaMonPassword". Ce problème intervient assez souvent sur les ordinateurs peu puissants et étaient assez fréquents pour que l'équipe nAiO décide que le comportement par défaut soit un passage de champ par clic et pas par tabulation, car en intercalant une action souris, on garantit que les deux actions clavier sont traitées de façon séparée.
Ce n'est pas un Send qui est utilisé mais un ControlSend. En spécifiant le handle de la fenêtre du client de jeu Dofus, on s'assure que la donnée sera envoyée entièrement à la fenêtre en question (pas d'interception possible dans le cas d'un clic malencontreux dans un bloc-notes). J'en veux pour preuve le script suivant :
- Code: Tout sélectionner
Local $LOREMIPSUM = _
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed d" & _
"o eiusmod tempor incididunt ut labore et dolore magna aliqua. " & _
"Ut enim ad minim veniam, quis nostrud exercitation ullamco lab" & _
"oris nisi ut aliquip ex ea commodo consequat. Duis aute irure " & _
"dolor in reprehenderit in voluptate velit esse cillum dolore e" & _
"u fugiat nulla pariatur. Excepteur sint occaecat cupidatat non" & _
" proident, sunt in culpa qui officia deserunt mollit anim id e" & _
"st laborum." & @CRLF & _
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem" & _
" accusantium doloremque laudantium, totam rem aperiam, eaque i" & _
"psa quae ab illo inventore veritatis et quasi architecto beata" & _
"e vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia " & _
"voluptas sit aspernatur aut odit aut fugit, sed quia consequun" & _
"tur magni dolores eos qui ratione voluptatem sequi nesciunt. N" & _
"eque porro quisquam est, qui dolorem ipsum quia dolor sit amet" & _
", consectetur, adipisci velit, sed quia non numquam eius modi " & _
"tempora incidunt ut labore et dolore magnam aliquam quaerat vo" & _
"luptatem. Ut enim ad minima veniam, quis nostrum exercitatione" & _
"m ullam corporis suscipit laboriosam, nisi ut aliquid ex ea co" & _
"mmodi consequatur? Quis autem vel eum iure reprehenderit qui i" & _
"n ea voluptate velit esse quam nihil molestiae consequatur, ve" & _
"l illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
MsgBox(0, "", "Test 1 : Send")
; TEST : Ouvrir deux fenêtres bloc-notes, lancer le script.
; SUCCESS : Le texte est envoyé dans une fenêtre.
; TEST : Cliquer dans le texte de l'autre fenêtre pendant l'exécution.
; SUCESS : L'envoi de texte change de destination.
Local $handle = WinWait("[CLASS:Notepad]", "", 10)
WinActivate($handle)
Send($LOREMIPSUM, 1)
MsgBox(0, "", "Test 2 : ControlSend")
; TEST : Ouvrir deux fenêtres bloc-notes, lancer le script.
; SUCCESS : Le texte est envoyé dans une fenêtre.
; TEST : Cliquer dans le texte de l'autre fenêtre pendant l'exécution.
; SUCESS : Le texte reste en cours d'envoi dans la fenêtre de départ.
Local $handle = WinWait("[CLASS:Notepad]", "", 10)
ControlSend($handle, "", "Edit1", $LOREMIPSUM, 1)
Le passage par le presse papier ne peut pas assurer que l'envoi sera effectué dans la fenêtre correspondante. Et même si tu dis que les KeyLoggers mal foutus codés par des gamins ne scrutent pas le copier/coller, il n'en est pas moins vrai que d'autres KL le font (étant ingé en dev et voulant rendre mon projet le plus safe possible, j'en vois pas mal passer). Et de ceux que j'ai pu tester pour éprouver la sécurité dans le projet nAiO, le ControlSend passant sans doute par un autre buffer que le classique du clavier, il n'a pour l'instant pas été intercepté (au grand dam du Send et du Clip).
Concernant la vitesse, il y a un paramètre directement accessible dans le nAiO qui permet de le faire, et il y a beaucoup de sujet qui traitent de ce "souci" de bug sur les chiffres dans le login ou le mot de passe. Cela dépend totalement de la machine sur laquelle est exécutée le nAiO et Dofus.
Bref, tu as souvent raison d'évoquer les points dont tu parles, et dans ton cas, cela t'irait sans doute parfaitement. Mais tu n'as pas 100% raison, en tout cas pas pour tout le monde... Moi non plus, mais j'essaye d'atteindre cette couverture maximale en prenant en compte tous les points sensibles que je peux voir. Je reprends donc ce que je disais plus haut, en voulant accélérer le nAiO, cela pourrait bien entraîner des régressions chez des gens pour qui ça fonctionnait nickel jusque là (tout ça pour gagner quelques millisecondes qui ne sont en aucun cas le but voulu du projet).
Par contre, rien ne t’empêche de prendre exemple sur le code source du
nAiO, le modifier à ta convenance et le recompiler pour toi ! Tous les outils sont sur le site, et le projet en entier est sous license
BY-NC-SA 4.0. N'hésite pas à poster un message dans le "Coin Des Développeurs"
[Lien] si tu as besoin de plus d'informations.
Merci de ton retour en tout cas, et à bientôt !