Page 1 sur 1

[..] Checkbox Shutdown distant et local

Posté : jeu. 22 déc. 2011 16:16
par XeniOne
Bonjour, je développe en ce moment une sorte de panel qui reste sur la gauche de l'écran pour moi et mes collègues, et je bloque sur des checkbox (jamais utilisé avant dans le script), voilà le principe:
J'ai une Inputbox ($input1) avec le nom du PC client.
J'ai un bouton shutdown (éteindre), et deux checkboxs juste à coté:
-PC distant
-PC local
J'aimerais qu'en cochant l'une ou l'autre checkbox ça exécute l'action appropriée.

Code : Tout sélectionner

;-------------------------------------------------------------------------------------------------------------------------------
            ;-------------------------------------Bouton Eteindre---------------------------------------------------------------------------
            ;-------------------------------------------------------------------------------------------------------------------------------

while 1

    Select

        Case $msg = $Button25


        ;-------------------Distant-------------------------
                            If GUICtrlGetState($Check1) =1 And Ping($rinput) = 0 Then
                            MsgBox(64, "Information", "Impossible de joindre l'hôte " & $rinput)

                            ElseIf GUICtrlGetState($Check1) = 1 And Ping($rinput) = 1 Then
                                Run(@ComSpec & ' /c shutdown -f -s -m \\' & $rinput & ' -c ' & $Input3, @SystemDir, @SW_HIDE)
                                MsgBox(0, "Extinction du système distant", "Le système distant va s'éteindre")

                            ElseIf GUICtrlGetState($Check2) = 1 Then
                                Run(@ComSpec & "/c shutdown -s -t 30")
ExitLoop
EndIf

EndSelect
WEnd
Avec ce code, le script ne va pas plus loin que le premier Msgbox (même lorsqu'un PC distant allumé est inscrit dans l'Input1), même en Checkbox PC Local; J'ai essayé je ne sais combien de solutions et toute aboutissent au même résultat: le script ne dépasse pas la première vérification même si celle-ci est fausse.
MERCI, je m'en remet à vous car je n'ai plus d'idées...

Re: [..] Checkbox Shutdown distant et local

Posté : jeu. 22 déc. 2011 18:25
par mikell
Essaie

Code : Tout sélectionner

 If BitAND(GUICtrlRead($Check1), $GUI_CHECKED) = $GUI_CHECKED Then
    If Ping($rinput) = 0 Then
        MsgBox(64, "Information", "Impossible de joindre l'hôte " & $rinput)
    Else
        Run(@ComSpec & ' /c shutdown -f -s -m \\' & $rinput & ' -c ' & $Input3, @SystemDir, @SW_HIDE)
        MsgBox(0, "Extinction du système distant", "Le système distant va s'éteindre")
    EndIf
EndIf
If BitAND(GUICtrlRead($Check2), $GUI_CHECKED) = $GUI_CHECKED Then
    Run(@ComSpec & "/c shutdown -s -t 30")
EndIf

Re: [..] Checkbox Shutdown distant et local

Posté : ven. 23 déc. 2011 09:13
par XeniOne
Merci de ta réponse mikell, mais ca ne fonctionne toujours pas :?

C'est quoi l'utilité de "BitAnd" ?

Re: [..] Checkbox Shutdown distant et local

Posté : ven. 23 déc. 2011 10:45
par zeshrek
Lis l'aide sur GUICtrlRead() et BitAnd() !
Une checkbox peut avoir simultanément plusieurs états (checkée ou pas, avec ou sans focus, activé ou non...)
Chaque état correspondant a un bit a 1 ou 0
Je te laisse déduire ensuite a quoi sert le BitAnd

Re: [..] Checkbox Shutdown distant et local

Posté : ven. 23 déc. 2011 12:35
par mikell
Fais un debug progressif en intercalant dans le script des msgbox ou des consolewrite, pour savoir précisément où ça merdoie