[R] Comment savoir si une checkbox est cochée ou non ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

[R] Comment savoir si une checkbox est cochée ou non ?

#1

Message par Xtend »

Bonjour,

Aujourd'hui, j'ai eu l'idée d'automatiser ma connexion wifi (allumer/éteindre) en faisant un script.
Je n'ai pas de soucis particulier concernant ce script.
Cependant, je voudrais faire une petite interface (pour faire jolie :p )

Je voudrais créer une icone dans la barre de tâche (donc avec les "Tray") et afficher une fenêtre dans le coin bas à gauche montrant si le wifi est activé ou non et si je veux l'activer (la fenêtre serais à l'image de ce qui s'affiche quand on clique sur l'icône "réseau" sous Win 7).

Le problème est donc ici : je voudrais vérifier si mon wifi est activé. Il faut savoir que je suis sur un PC fixe avec prise Ethernet et donc l'utilité serais pour connecter mon iPod plus rapidement sans faire 10 manips ;)

Pour cela, il faut savoir si la case (sur le site du routeur) est coché ou pas.

Voici la page de mon routeur :
► Afficher le texte
Comme vous pouvez le voir, il y a une "value", ici ayant pour valeur 1, mais qui ne change pas quand on coche :(

Comme pourrais-je faire pour cela ?



Sinon, autre question toute simple pour vous (enfin, je pense) :
Pour ce script, j'ouvre d'abord une page internet (en mode caché) et j'entre mes identifiants. Cependant, après il faut que change le lien pour accéder à la page de connexion wifi. Donc cela m'ouvre deux fenêtres et je n'en voudrais qu'une.

Voici pour l'instant le code
► Afficher le texte
Savez-vous comment procéder ?


Merci d'avance pour vos futures réponses ;)
Modifié en dernier par Xtend le ven. 18 mars 2011 23:42, modifié 2 fois.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Besoin d'aide pour des valeurs de checkbox

#2

Message par GaRydelaMer »

Bonjour


Réponse à la question 2 voir : _IENavigate ( ByRef $oIE, $s_url [, $f_wait = 1] )


Pour la question 1:

Code : Tout sélectionner

$oIE = _IECreate ( ton adresse, puis navigate pour lire la page )

local $ChexkBox = _IEFormElementGetObjByName($oIE, "enable")
; Ici tu auras 1 ou 0
local $Value = _IEFormElementGetValue($ChexkBox)
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Besoin d'aide pour des valeurs de checkbox

#3

Message par Xtend »

Merci beaucoup pour ta réponse GaRydelaMer, je testerais tout ça quand je pourrais ;)

Edit : j'ai testé ton script mais il ne marche pas.

En effet, j'ai essayé deux méthode pour savoir si la valeur était 0 ou 1 :
► Afficher le texte
Qu'importe si la case est coché ou non, la valeur afficher dans ma fenêtre est 0.

Comment puis-je faire dans ce cas là ?


Sinon, pour ce qui est du _IENavigate(), c'était bien cela. Pas de problème pour cela ;)
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Besoin d'aide pour des valeurs de checkbox

#4

Message par ani »

salut, juste comme çà, vais faire le lourdo ^^"
le besoin d'aide dans le titre ne sert à rien.
forum = entraide
section = aide :D

merci de modifier le titre ;)
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Besoin d'aide pour des valeurs de checkbox

#5

Message par Xtend »

ani a écrit :salut, juste comme çà, vais faire le lourdo ^^"
merci de modifier le titre ;)
C'est mieux comme ça ? ^^
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#6

Message par Xtend »

Quelqu'un aurait une idée ?
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#7

Message par sksbir »

Xtend a écrit :...........
Pour cela, il faut savoir si la case (sur le site du routeur) est coché ou pas..........
Bonjour

Regarde la fonction _IEFormElementCheckBoxSelect, et utilise $f_select à -1 pour obtenir le statut coché/décoché.

La solution n'est pas de moi : Source

Et cette URL, c'est la 1ere que me renvoie google à la requete suivante : IE.au3 how to retrieve value from check box
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#8

Message par Xtend »

Merci pour ta réponse mais ça ne marche pas pour moi :S
► Afficher le texte
Ma msgbox me retourne toujours 0.
Cependant, le problème ne doit pas venir de la fonction que tu m'as donné mais de cette ligne :

$CheckBox = _IEFormElementGetObjByName ($oIE, "enable")

En effet, c'est elle qui retourne toujours 0 donc l'autre fonction a obligatoirement 0 comme valeur étant donné qu'elle se base sur celle-ci.

Quelqu'un a-t-il une idée de comment pouvoir avoir la valeur de la checkbox ?
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#9

Message par GaRydelaMer »

Et ca ca donne quoi:

$ChexkBox = _IEFormElementCheckBoxSelect($oIE, "", "enable", -1)
; Retourne l'etat checked ou unchecked de l'element HTML "input type=checkbox" du nom de "enable"

Voir pour le 2ème paramètre ici = "" si tu as la valeur dans ta source HTML. et regarde aussi la valeur de @Error
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#10

Message par Xtend »

GaRydelaMer a écrit :Et ca ca donne quoi:

$ChexkBox = _IEFormElementCheckBoxSelect($oIE, "", "enable", -1)
; Retourne l'etat checked ou unchecked de l'element HTML "input type=checkbox" du nom de "enable"

Voir pour le 2ème paramètre ici = "" si tu as la valeur dans ta source HTML. et regarde aussi la valeur de @Error
Ça ne marche pas, j'ai essayé avec :

$ChexkBox = _IEFormElementCheckBoxSelect($oIE, "", "enable", -1)

et

$ChexkBox = _IEFormElementCheckBoxSelect($oIE, "1", "enable", -1)


La msgbox me retourne toujours la valeur 0.
Voici une partie du code source de la page de mon routeur (en particulier celle de la checkbox) :
► Afficher le texte

Avez-vous d'autres idées ?
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#11

Message par sksbir »

Bonjour

On ne voit pas sur la capture d'écran la relation entre l'objet "enable", et la légende "Activer le sans fil".

Si ça se trouve, tu vérifies la checkbox de sélection automatique des canaux...
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#12

Message par Xtend »

non, le code est bien le bon.
La checkbox de sélection automatique des canaux a pour id "autochann" et non "enable" ;)
Voici une capture du code un peu plus précise :
► Afficher le texte
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#13

Message par GaRydelaMer »

Bonjour

si tu nous donnais plutôt du code texte, on pourrais t'aider plus, car je vais pas utiliser un OCR pour lire ton image et faire des tests.
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#14

Message par Xtend »

Bon, j'ai mis le code de la partie concernée avec le code de la checkbox en rouge :
► Afficher le texte
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#15

Message par GaRydelaMer »

Bon

avec la source fournis ca marche très bien mais on a fait une erreur au début avec la fonction _IEFormElementCheckBoxSelect, il fallait comme 1er paramètre un objet Form et pas l'objet IE

Testé et ca marche, avec ta source (ton post avant) enregistrer dans le dossier du script sous: source.html

Code : Tout sélectionner

Opt("MustDeclareVars", 1)
Opt("GUICloseOnESC", 1)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

_IEErrorHandlerRegister()

Global $oIE = _IECreateEmbedded()
GUICreate("Test Page HTML", 800, 700, -1, -1, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
Global $GUI_ActiveX = GUICtrlCreateObj($oIE, 0, 0, 800, 650)
Global $GUI_Button_Test = GUICtrlCreateButton("Test", 10, 660, 100, 30)
Global $GUI_Label_Test = GUICtrlCreateLabel("Test du checkbox ""enable""", 120, 660, 660, 30)
GUISetState()

_IENavigate($oIE, @ScriptDir & "\source.html")
Global $oForm = _IEFormGetObjByName ($oIE, "frm")

Global $nMsg, $Check = ""
While 1
    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $nMsg = $GUI_Button_Test
            $Check = _IEFormElementCheckBoxSelect($oForm, "1", "enable", -1)
            GUICtrlSetData($GUI_Label_Test, StringFormat("Test du checkbox ""enable"": %s", $Check))
    EndSelect
WEnd
 
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#16

Message par Xtend »

Oui, c'est bien cela : ça marche ;)
J'ai eu un peu de mal à comprendre le coup du Global $oForm = _IEFormGetObjByName ($oIE, "frm") étant donné que la checkbox n'a pas pour valeur "frm" mais c'est par rapport à une histoire de "form" (comme tu l'as dis) car on trouve cette ligne :
<form name="frm" id="frm" onsubmit="return false;" action="bsc_wlan.php" method="post">

Donc merci beaucoup pour ta solution, je vais pouvoir continuer mon petit script ;)




Sinon, j'ai une autre question (je la poste ici pour pas faire un nouveau sujet) :

Le but de ce projet est de créer une icône dans la barre de tâche de Windows 7 afin d'activer ou désactiver le wifi.
Je voudrais faire quelque chose d'esthétique donc je voudrais savoir si c'est possible d'imiter la fenêtre de l'icône "réseau" par exemple et d'intégrer mes boutons pour activer ou désactiver mon wifi.
Voici à quoi ressemble la fenêtre de l'icône réseau :
► Afficher le texte
Doit-on faire une fenêtre à part entière ou une fonctionnalité d'Autoit permet d'en faire une telle qu'elle ?
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#17

Message par GaRydelaMer »

Content enfin d'avoir apporté la solution.
Oui je choisis le formulaire Html "frm" pour chercher ensuite l'élément "enable" ta checkbox du formulaire.


Pour le 2ème point tu dois la créer de toute pièce.

Mais AutoIt te donne tous les contrôles pour le faire. Pense à calculer la position de la barre de tâche moi je l'ai mise en Haut.
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#18

Message par Xtend »

ok, merci encore pour la solution ;)

Sinon, pour la fenêtre, il faut donc que je crée une Gui de toute pièce en la mettant en bas à droite (chez moi, la barre de tâche est en bas et pas en haut).
Il y a-t-il une commande pour directement la placer dans le côté droit ?
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#19

Message par GaRydelaMer »

Non à toi de le calulculer

$Width = 200; largeur de la fenêtre
$Height = 80; Hauteur de la fenêtre
$Marge = 30; Marge depuis le bord de l'écran

$Left = @DesktopWidth - $Width - $Marge
$Top = @DesktopHeight - $Height - $Marge

$GUI = GUICreate("Surveillance reseaux Wifi de mon routeur", $Width, $Height, $Left, $Top)
Xtend
Niveau 4
Niveau 4
Messages : 54
Enregistré le : sam. 19 févr. 2011 11:58
Status : Hors ligne

Re: [..] Comment savoir si une checkbox est cochée ou non ?

#20

Message par Xtend »

ok, merci pour ton code ;)

Est-il possible de créer une fenêtre sans le bord où il y a le titre ?

J'ai déjà réussi à supprimer les boutons "réduire", "agrandir" et "quitter" mais j'arrive pas à enlever la bordure du haut :S
Répondre