[..] Valider si case cochée

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[..] Valider si case cochée

#1

Message par jcaspar »

Bonjour à tous !
Je voudrais paramétrer automatiquement la configuration d'un pilote d'impression..
pour cela une case à cocher doit être décochée ... comment puis je vérifier
si une case est cochée ou non ? ( il s'agit d'une fenêtre windows )

J :mrgreen: e vous remercie d'avance pour vos idées et conseils
Modifié en dernier par jcaspar le mer. 27 juin 2012 15:09, modifié 1 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Valider si case cochée

#2

Message par sylvanie »

Il va falloir utilisez la fonction :
Controlcommand("Title","text","ControlId","Ischecked")
pour le titre et le texte, généralement ça va (on peut même mettre "" pour le texte, mais si vous y en mettez un ça peut éviter les problèmes de mauvaise sélection)
Après c'est l'identifiant du contrôle. Dans un premier temps utilisez Au3info. On peut identifier un contrôle par sa valeur ou sa classe d'identification. Après, cf aide au sujet de la fonction Controlcommand
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Valider si case cochée

#3

Message par zeshrek »

L'autre solution consiste a savoir ou est stockée l'info correspondant a la case cochée (ou pas). Généralement ca se trouve dans la base de registre, donc il sufit de faire un regread pour s'assurer que la valeur est la bonne, et/ou de faire un regwrite pour forcer le cochage de la case.
Si vis pacem para bellum
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Valider si case cochée

#4

Message par jcaspar »

Merci beaucoup pour vos réponses !
Croyiez vous qu'il soit possible de dire à mon code
" si la case est cochée la décocher ? "
voici mon idée mais elle ne semble pas fonctionnelle .. :roll: .

Code : Tout sélectionner


 if  ControlCommand("[CLASS:#32770]", "","Utilisateur public", "ischecked", "") =1  then
     ControlCommand("[CLASS:#32770]", "","Utilisateur public", "uncheck", "")
 EndIf

 
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Valider si case cochée

#5

Message par sylvanie »

l'idée est là, par contre en ce sui concerne le contrôle, ça m'étonnerai que ce soit ça.
généralement on a quelque chose du genre identifiant numérique ou de classe (exple : [CLASS:Button; TEXT:Finish; INSTANCE:2], mais dans votre cas ce serait une checkbox)
n'auriez vous pas échangé le titre et le contrôle dans votre appel ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Valider si case cochée

#6

Message par jcaspar »


M :D erci pour vos suggestions !

Je viens de tester de la manière suivante ....mais cela est toujours incorrect ... je dois faire une erreur au niveau de la syntaxe ....
peut être avez vous une petite idée ? J'ai suivi la doc soit ->>titre, texte,id,command,option ...
:roll:

Code : Tout sélectionner


  WinWaitActive("Paramètres avancés du serveur")
  if  ControlCommand("Paramètres avancés du serveur","Utilisateur &public","[ID:999]", "ischecked" )=1 then
  ControlCommand("Paramètres avancés du serveur","Utilisateur &public","[ID:999]", "uncheck)
    EndIf
 
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Valider si case cochée

#7

Message par sylvanie »

On va tenter d'élargir la détection en supprimant le texte. dans un premier temps. Ensuite (en cas d'échec), essayez de mettre la valeur 999 directement :

Code : Tout sélectionner

 WinWaitActive("Paramètres avancés du serveur")
  if  ControlCommand("Paramètres avancés du serveur","",999, "ischecked" )=1 then
  ControlCommand("Paramètres avancés du serveur","",999, "uncheck)
    EndIf
 
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre