[R] AutoIt et la reconnaissance de caractère..
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 1
- Messages : 3
- Enregistré le : jeu. 17 avr. 2008 00:49
- Status : Hors ligne
[R] AutoIt et la reconnaissance de caractère..
Bonjour, je suis nouveau dans la communauté AutoIt et j'aimerais savoir si il y a une fonction pour reconnaitre les caractères ?
Je m'explique :
J'ai un site web qui génère des numéros, et j'aimerais faire un script AutoIt qui puisse "copier" ce numéro en mémoire, et ensuite extraire le mot correspondant à ce numéro dans une base de donné du style "numéro : mot" afin d'afficher ce mot à l'écran.
Croyez vous que cela soit possible ?
Info complémentaire, je n'ai pas accés au code source du site en question donc il faudrait une fonction qui copie/colle le numéro :/
Merci de votre aide !
Je m'explique :
J'ai un site web qui génère des numéros, et j'aimerais faire un script AutoIt qui puisse "copier" ce numéro en mémoire, et ensuite extraire le mot correspondant à ce numéro dans une base de donné du style "numéro : mot" afin d'afficher ce mot à l'écran.
Croyez vous que cela soit possible ?
Info complémentaire, je n'ai pas accés au code source du site en question donc il faudrait une fonction qui copie/colle le numéro :/
Merci de votre aide !
Re: [..] AutoIt et la reconnaissance de caractère..
Ça serait plus facile de te répondre en connaissant le "site en question", mais a priori, pour récupérer ton numéro, tu devrais te tourner vers les expressions régulières.
-
- Niveau 1
- Messages : 3
- Enregistré le : jeu. 17 avr. 2008 00:49
- Status : Hors ligne
Re: [..] AutoIt et la reconnaissance de caractère..
Bonjour,
Merci de m'avoir répondu !
Je vais essayer de me tourner vers les expressions régulières mais je pense que c'est trop complexe pour ce que je veux faire, je vais plutôt faire un truc simple du genre déplacement de souris jusqu'au numéro généré, mise en subrillance, copier/coller le numéro en variable. Je pense pouvoir être capable de m'occuper de cette partie mais vient ensuite la partie où AutoIt doit aller chercher dans une base de donné afin de coller la chaine de caractère correspondant au numéro dans un champ de recherche se trouvant sur la même page, et je ne sais pas si AutoIt peut gerer ce genre de chose :/
Merci de m'avoir répondu !
Je vais essayer de me tourner vers les expressions régulières mais je pense que c'est trop complexe pour ce que je veux faire, je vais plutôt faire un truc simple du genre déplacement de souris jusqu'au numéro généré, mise en subrillance, copier/coller le numéro en variable. Je pense pouvoir être capable de m'occuper de cette partie mais vient ensuite la partie où AutoIt doit aller chercher dans une base de donné afin de coller la chaine de caractère correspondant au numéro dans un champ de recherche se trouvant sur la même page, et je ne sais pas si AutoIt peut gerer ce genre de chose :/
Re: [..] AutoIt et la reconnaissance de caractère..
Si tu n'es pas le webmaster, pas plus AutoIt qu'un autre langage ne te permettra d'accéder a la base de donné d'un site.erotomania a écrit :mais vient ensuite la partie où AutoIt doit aller chercher dans une base de donné afin de coller la chaine de caractère correspondant au numéro dans un champ de recherche se trouvant sur la même page, et je ne sais pas si AutoIt peut gerer ce genre de chose :/

Sinon c'est illégale. ^^
Re: [..] AutoIt et la reconnaissance de caractère..
Plop,
si tu n'est pas anglophobe, j'avais trouvé quelques topics sur les "OCR" sous autoit sur le site angliche:
http://www.autoitscript.com/forum/index ... ntry455611
Non testé, mais j'espere que ca pourra te convenir
si tu n'est pas anglophobe, j'avais trouvé quelques topics sur les "OCR" sous autoit sur le site angliche:
http://www.autoitscript.com/forum/index ... ntry455611
Non testé, mais j'espere que ca pourra te convenir
-
- Niveau 1
- Messages : 3
- Enregistré le : jeu. 17 avr. 2008 00:49
- Status : Hors ligne
Re: [..] AutoIt et la reconnaissance de caractère..
Merci je vais regarder ça 
Ps : Je ne veux pas acceder à la base de données du dit site mais à ma propre "base de données" qui pourrait très bien être un fichier.txt de la forme
1 : aaa
2 : bbb
3 : ccc
En fait j'aimerais faire un code qui copie le numéro 2 (par exemple), qui cherche le mot correspondant dans ce fichier (ici le mot est bbb) et qui me recrache ce mot dans une zone où on peut copier du texte

Ps : Je ne veux pas acceder à la base de données du dit site mais à ma propre "base de données" qui pourrait très bien être un fichier.txt de la forme
1 : aaa
2 : bbb
3 : ccc
En fait j'aimerais faire un code qui copie le numéro 2 (par exemple), qui cherche le mot correspondant dans ce fichier (ici le mot est bbb) et qui me recrache ce mot dans une zone où on peut copier du texte

Re: [..] AutoIt et la reconnaissance de caractère..
et pourquoi ne pas le mettre dans le presse papier avec ClipPut($var)
Re: [..] AutoIt et la reconnaissance de caractère..
Bonjour à tous et à toutes, je me permet de poster ici car ma question concerne aussi la reconnaissance de caractères.
Voilà, j'aimerai savoir si il est possible dans AutoIt de faire l'équivalent d'un "like" comme sql.
J'aimerai, si c'est bel et bien possible, utiliser cette fonctionnalité pour ne plus avoir à renseigner le nom d'une fenêtre, notamment dans un "WinWaitActive()" ou autre.
Par exemple le code suivant lance notepad, et si la fenêtre portant son nom existe, il m'ouvre une boîte de dialogue.
J'aimerai, à la place du titre complet (Sans titre - Bloc-notes), soit mettre une variable qui détecte le titre automatiquement, soit qu'il reconnaisse le titre à partir de quelques lettre ( comme "Sans titre").
J'ai découvert AutoIt il y a quelques jours seulement, j'ai pourtant regardé toutes les fonctions disponibles, mais je n'ai pas trouvé.
Merci à vous.
Voilà, j'aimerai savoir si il est possible dans AutoIt de faire l'équivalent d'un "like" comme sql.
J'aimerai, si c'est bel et bien possible, utiliser cette fonctionnalité pour ne plus avoir à renseigner le nom d'une fenêtre, notamment dans un "WinWaitActive()" ou autre.
Par exemple le code suivant lance notepad, et si la fenêtre portant son nom existe, il m'ouvre une boîte de dialogue.
J'aimerai, à la place du titre complet (Sans titre - Bloc-notes), soit mettre une variable qui détecte le titre automatiquement, soit qu'il reconnaisse le titre à partir de quelques lettre ( comme "Sans titre").
Code : Tout sélectionner
$title="Sans titre - Bloc-notes"
run ("notepad")
If WinExists ($title) Then
msgbox ("0", "Test", "Réussi")
EndIf
Merci à vous.
Re: [..] AutoIt et la reconnaissance de caractère..
Bonjour,
Pour répondre à ta question x0r, la fonction WinGetTitle() permet de matcher une fenêtre grâce à son titre sans forcément devoir donner le titre entier.
En espérant que cela réponde correctement à ton attente.
Cordialement,
Pour répondre à ta question x0r, la fonction WinGetTitle() permet de matcher une fenêtre grâce à son titre sans forcément devoir donner le titre entier.
Pour reprendre ton exemple, avec quelques modifications cela donne :WinGetTitle ( "title" [, "text"] )
Code : Tout sélectionner
$title="Sans titre -" ; On prend un morceau du titre recherché
run ("notepad") ; On lance notre application pour tester
WinWaitActive($title) ; On demande d'attendre que la fenêtre soit active
$titreComplet = WinGetTitle($title,"") ; On récupère le titre complet
ConsoleWrite($titreComplet & @CRLF) ; On affiche le titre complet pour vérification
If WinExists ($titreComplet) Then ; Si la fenêtre existe on affiche la messagebox
msgbox ("0", "Test", "Réussi")
EndIf
Cordialement,
L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] AutoIt et la reconnaissance de caractère..
Bonjour et merci pour la réponse rapide ^^, est-ce que cela répond à ma question, à vrai dire, oui et non.
Effectivement j'avais repéré cette fonction ' WinGetTitle ( "title" [, "text"] ) ', mais j'aurai quelques question sur la solution que vous me proposez:
Mais aucune fenêtre ne porte ce nom, puisque le nom exacte est "Sans titre - Bloc-notes"; ce qui veut dire qu'AutoIt analyse déjà les fenêtre commencant par "Sans titre -" ?
Et dans ce cas, quel est l'intérêt de la variable "$titreComplet" ?
Le programme que j'ai fournis dans le post initial, est la à titre d'exemple, juste pour que ma question soit rapidement comprise, mais en fait j'aimerai appliquer cela à un autre script.
Et chose étrange, sur l'autre script, il ne reconnait pas le nom de la fenêtre.
P.S : ce sont de simples question de pure débutant, je ne suis évidemment pas en train de critiquer votre solution ^^
Peut-être devrai-je créer un autre post qui concerne mon script?
Effectivement j'avais repéré cette fonction ' WinGetTitle ( "title" [, "text"] ) ', mais j'aurai quelques question sur la solution que vous me proposez:
Code : Tout sélectionner
$title="Sans titre -" ; On prend un morceau du titre recherché
run ("notepad") ; On lance notre application pour tester
WinWaitActive($title) ; On demande d'attendre que la fenêtre soit active
$titreComplet = WinGetTitle($title,"") ; On récupère le titre complet
ConsoleWrite($titreComplet & @CRLF) ; On affiche le titre complet pour vérification
If WinExists ($titreComplet) Then ; Si la fenêtre existe on affiche la messagebox
msgbox ("0", "Test", "Réussi")
EndIf
On demande donc d'attendre la fenêtre qui porte le nom "$title", en l'occurence : "Sans titre -"WinWaitActive($title)
Mais aucune fenêtre ne porte ce nom, puisque le nom exacte est "Sans titre - Bloc-notes"; ce qui veut dire qu'AutoIt analyse déjà les fenêtre commencant par "Sans titre -" ?
Et dans ce cas, quel est l'intérêt de la variable "$titreComplet" ?
Le programme que j'ai fournis dans le post initial, est la à titre d'exemple, juste pour que ma question soit rapidement comprise, mais en fait j'aimerai appliquer cela à un autre script.
Et chose étrange, sur l'autre script, il ne reconnait pas le nom de la fenêtre.
P.S : ce sont de simples question de pure débutant, je ne suis évidemment pas en train de critiquer votre solution ^^
Peut-être devrai-je créer un autre post qui concerne mon script?
Re: [..] AutoIt et la reconnaissance de caractère..
En réalité, la variable $titreComplet n'a aucune utilité propre si ce n'est d'arriver à récupérer le titre complet à partir d'une partie de titre. C'était juste à titre d'exemple, dans le concret c'est le WinWaitActive() qui va permettre à ta condition de pouvoir détecter grâce à WinExists() si la fenêtre existe bel et bien.
Cependant, selon, le contexte il peut être intéressant de récupérer le titre complet pour la suite des actions (je pense notamment à une gestion "multi-fenêtres" avec des titres assez similaires du genre:
Application - Configuration
Application - A propos
et un autre soft lancé en même temps donc certaines fenêtres auraient comme titre
unSoft - A propos
unSoft - Configuration
etc.)
Il est vrai que je me suis permis d'élargir un peu le scope histoire de proposer une solution qui peut servir dans des cas plus génériques. Dans le cas de ta demande précis, c'est surtout le WinWaitActive() qui permet d'attendre que la fenêtre soit crée avant de vérifier la condition qui est utile.
Cependant, selon, le contexte il peut être intéressant de récupérer le titre complet pour la suite des actions (je pense notamment à une gestion "multi-fenêtres" avec des titres assez similaires du genre:
Application - Configuration
Application - A propos
et un autre soft lancé en même temps donc certaines fenêtres auraient comme titre
unSoft - A propos
unSoft - Configuration
etc.)
Il est vrai que je me suis permis d'élargir un peu le scope histoire de proposer une solution qui peut servir dans des cas plus génériques. Dans le cas de ta demande précis, c'est surtout le WinWaitActive() qui permet d'attendre que la fenêtre soit crée avant de vérifier la condition qui est utile.
L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !