Page 1 sur 2
[R] Quand l'utilisateur écrit 5 caractère AutoIt lui dit
Posté : ven. 05 nov. 2010 20:18
par lSlpynao
Bonjour/Bonsoir,
mon problème :
Quand l'utilisateur écrit 5 caractère AutoIt lui dit ce qu'il a écrit ,si c'est possible biensur.
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 20:31
par Jerome
Coucou,
Pourquoi écrire dans une input ?
Mettre une valeur par défaut ?
Sinon autant mettre que la variable de l'input est votre texte.
Jérôme
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 20:33
par lSlpynao
Ok alors je change ma question en :
Comment faire pour que autoit clique sur ok tout seul
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 20:45
par Jerome
Je voit pas trop l'intérêt dsl :s
Si vous faite une input box, c'est pour qu'un utilisateur quelconque rentre une valeur et click sur un bouton.
Vous pouvez décrire ce que vous voulez faire, dans quel but ?
Jérôme
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 21:40
par lSlpynao
Je veut prouver a un ami que l'on peut presque tout faire avec autoit ( il pense que seul C peut faire quasiment tout )
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 21:44
par lSlpynao
Non c bon j' ait trouver une autre façon de prouver que l'on peut fermer fermer une fenêtre sans un clique quelqu'onque ou un bug.
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 22:06
par sylvanie
Pour les grande démonstration visuelle, regargez le fichier d'aide pour ce qui concerne ControlSetText par exemple, ou lancez vous dans les exemple de GUI que vous pourrez améliorer
Mais maintenant, faut arrêter de comparer les voitures de course avec les camions ... c'est pas fait pour les mêmes choses
Autoit et C ne sont pas vraiment comparables ...
Autoit est un langage de script interprété Windows alors que le C est un langage de programmation qui se compile et qui peut taper aisément dans le bas niveau dans tous les types de plateformes (PC, téléphone, GPS, ...) et est indépendant de l'OS (après ceux sont les méthodes d'appel qui diffèrent).
Là où votre ami a raison, c'est qu'avec du C, dans l'absolu, on peut quasiment tout faire, mais par contre il faut s'en donner les moyens, c'est compliqué et long, et ce n'est pas vraiment interessant dès qu'il s'agit de fare inter-agir du haut niveau (agir sur des fenêtres, gérer des évènements propres à Windows, jouer du flash ...).
On ira bien plus vite à le faire grâce à Autoit (lui même développé en C++), mais ça consommera plus de ram, plus de CPU et on est confiné aux PC sous Windows (voir Linux pour fair plaisir aux adeptes de Wine).
Du coups Autoit c'est pour du scripting sous Windows (et il est à mon sens très très bon dans son domaine), et le C c'est pour la programmation à but d'efficacité (rapidité/consommation de ressource) sur tout type de plateforme
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 22:11
par Tlem
Je pense peut être comprendre la demande.
Le but, serait sans doute d'afficher une pseudo input box et de réagir lorsque la saisie comprend le nombre de caractères désirés.
J'ai pas trop commenté le code qui suit, mais en dehors du
GUIRegisterMsg dont vous trouverez les explications dans la documentation, le reste est relativement simple ...

► Afficher le texte
Code : Tout sélectionner
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("", 160, 74, -1, -1)
$Label1 = GUICtrlCreateLabel("Entrez un mot à quatre lettres :", 8, 8, 148, 17)
$Input1 = GUICtrlCreateInput("", 16, 32, 121, 21)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; Ceci sert pour surveiller la zone d'input
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Input1
ConsoleWrite(GUICtrlRead($Input1))
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $hWndInput1
If Not IsHWnd($Input1) Then $hWndInput1 = GUICtrlGetHandle($Input1) ; Attention à bien utiliser le control ID de votre input
$hWndFrom = $ilParam
$iIDFrom = BitAND($iwParam, 0xFFFF) ; HiWord
$iCode = BitShift($iwParam, 16) ; LoWord
Switch $hWndFrom
Case $hWndInput1
Switch $iCode
Case $EN_CHANGE
; C'est ici que vous devez gérer vos contrôles sur l'input
$MyInput = GUICtrlRead($Input1)
If StringLen($MyInput) >= 4 Then
GUIDelete($Form1)
MsgBox(64,"Votre valeur","Vous avez entré la valeur : " & $MyInput)
Exit
EndIf
; Fin du contrôle/execution
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Edit : Croisement de messages.
Mais je pense que ma réponse est plus démonstrative.
@lSlpynao
la balise [..], c'est une seule fois en début du titre et avec un espace entre la balise et le titre.
Merci
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 22:36
par sylvanie
Ah ouais ... l'enregistremnt à la callback d'évènement carrement, t'as pas peur d'effrayer les nouveaux

Re: [..]Créer une input et autoit ecri dedans [..]
Posté : ven. 05 nov. 2010 22:43
par Tlem
Ben le code est pondu et fonctionnel. Il n’a plus qu'à adapter.
Et puis c'est pas si hard que ça quand même, ça ne rajoute qu'une vingtaine de lignes ...
D'ailleurs, j'ai remarqué que pas mal de codes profiteraient bien de la CallBack dans certain cas.

Sans compter que la doc de la commande
GUIRegisterMsg est tout à fait compréhensible par ceux qui lisent à peut prêt l'Anglais.

Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 08:00
par legend
Bonjour,
Les inputbox et msgbox bloquent par default le reste du script.
ce qui veut dire, rien ne fonctionnera avant que le box disparaisse.
solution la plus simple : un petit run d'un autre script qui fera cette tache ^^
il faudras 2 codes :
; compile le 2eme script met le dans le même chemin du script1 et donne lui le nom script.exe
on peut faire enormement de trucs sur autoit ce qu'il faut ce sont les idées

sinon faudrais mieux faire le box avec un cooldown, ce sera plus efficace.
pour que auto it écris dans l'inputbox tu peut faire le même truc.
Bonne journée
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 09:19
par Tlem
@legend
Vous devriez lire les réponses des autres avant d'écrire des choses qui n’ont pas lieu d'êtres.
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 10:58
par legend
Je sais que la GUI marche.
mais le script que j'ai donné sera plus simple pour sa demande (cliquer ou écrire dans un "inputbox")
en effet sa peut avoir une utilité.
exemple :
tu veux faire entrer un texte d'un fenetre dans le script.
le script copie le texte avec des clics.
un petit run sur le 2eme script aprés un inputbox
le 2eme script fera juste ctr+v sur l'inputbox et cliquera "ok".
le texte est dans le script

Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 19:24
par bloodwolff
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 21:14
par legend
c'est ce que dis la demande ^^
même si c'est bien bidon le script fait ce que le type demande.
bonne journée
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 21:50
par bloodwolff
Ce script le fais aussi mais ne passe pas par l'intermédiaire d'un 2e script ...
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Question", 186, 85, 192, 124)
$Input1 = GUICtrlCreateInput("", 8, 32, 169, 21)
$Label1 = GUICtrlCreateLabel("Qui est le meilleur?", 9, 8, 116, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Ok", 8, 56, 75, 25)
$Button2 = GUICtrlCreateButton("Cancel", 104, 56, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$texte = "Bloodwolff"
For $i=0 To 10
GUICtrlSetData($Input1,StringLeft($texte,$i))
Sleep(150)
Next
$pos = WinGetPos($Form1)
GUISetCursor(2,1)
mouseMove($pos[0]+62,$pos[1]+85,25)
GUICtrlSetState($Button1,$GUI_FOCUS)
Sleep(50)
GUIDelete($Form1)
MsgBox(0,"","Bravo vous avez dit que Bloodwolff était le meilleur")
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 21:52
par Tlem
Heuuu ouais, si on veut, car la question réelle n'est pas celle du titre :
http://www.autoitscript.fr/forum/viewto ... 934#p37934
Comme de quoi il faut tout lire ...
Et puis, utiliser une hache pour tailler sa moustache, ce n'est pas des plus pratique et pas vraiment adapté.
Re: [..]Créer une input et autoit ecri dedans [..]
Posté : dim. 07 nov. 2010 21:54
par bloodwolff
Ya pas que la moustache qui risque d'être coupé

Re: [..] Créer une input et autoit ecrit dedans
Posté : dim. 07 nov. 2010 22:09
par legend
lol, mouais j'ai seulement 15ans (g presque pas de moustache ^^)
bref le mec voulais montrer que autoit peut tout faire donc c'etait pour moi un défi a propos d'un inputbox.
mais j'avoue c'est un script nullll mais simple ^^
bonne journée a tous
Re: [..] Créer une input et autoit ecrit dedans
Posté : sam. 18 déc. 2010 18:27
par lSlpynao
Merci pour votre aide et désoler j'ai eu un problème avec internet

donc je n'ai pas peux me conecter plus tôt