Page 1 sur 2

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

Posté : jeu. 10 mars 2011 11:49
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 ;)

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

Posté : jeu. 10 mars 2011 12:16
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)

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

Posté : jeu. 10 mars 2011 18:14
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 ;)

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

Posté : jeu. 10 mars 2011 18:27
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 ;)

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

Posté : jeu. 10 mars 2011 18:46
par Xtend
ani a écrit :salut, juste comme çà, vais faire le lourdo ^^"
merci de modifier le titre ;)
C'est mieux comme ça ? ^^

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

Posté : ven. 11 mars 2011 19:07
par Xtend
Quelqu'un aurait une idée ?

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

Posté : mar. 15 mars 2011 13:40
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

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

Posté : mar. 15 mars 2011 15:36
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 ?

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

Posté : mar. 15 mars 2011 16:12
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

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

Posté : mar. 15 mars 2011 19:46
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 ?

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

Posté : mer. 16 mars 2011 11:44
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...

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

Posté : mer. 16 mars 2011 12:05
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

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

Posté : mer. 16 mars 2011 15:20
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.

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

Posté : mer. 16 mars 2011 16:03
par Xtend
Bon, j'ai mis le code de la partie concernée avec le code de la checkbox en rouge :
► Afficher le texte

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

Posté : mer. 16 mars 2011 17:00
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
 

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

Posté : mer. 16 mars 2011 18:44
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 ?

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

Posté : mer. 16 mars 2011 19:09
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.

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

Posté : mer. 16 mars 2011 19:13
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 ?

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

Posté : mer. 16 mars 2011 19:27
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)

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

Posté : mer. 16 mars 2011 22:31
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