Problèmes de fonctions non reconnues dans mon script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
khenpah
Niveau 1
Niveau 1
Messages : 1
Enregistré le : lun. 13 mai 2019 14:20
Status : Hors ligne

Problèmes de fonctions non reconnues dans mon script

#1

Message par khenpah » lun. 13 mai 2019 14:41

Bonjour à tous et à toutes et je vous remercie d'avance de l'aide que vous me fournirez car je suis assez bloqué.

Je me forme au langage Autoit en suivant les exercices d'Openclassroom.
Pour mon dernier script, j'ai défini deux fonctions à la fin de mon code :

- une pour lire le contenu d'une liste et renseigner une valeur dans une variable
- une autre pour vérifier le status d'un bouton radio.

Sauf que le script m'indique toujours qu'il ne reconnait pas les fonctions définies à la fin.
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <StringConstants.au3>
#include <WindowsConstants.au3>
#include <Crypt.au3>

global $chemin = ""
Global $algo= ""

#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Interface 1", 1108, 525, 195, 129)
$Group1 = GUICtrlCreateGroup("Que voulez vous chiffrer ?", 32, 32, 281, 113)
$rtexte = GUICtrlCreateRadio("texte", 56, 56, 225, 33)
$rfichier = GUICtrlCreateRadio("fichier", 56, 96, 241, 41)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Options", 456, 32, 545, 145)
$mdp = GUICtrlCreateInput("", 568, 56, 161, 21)
$Label1 = GUICtrlCreateLabel("mot de passe", 464, 56, 67, 17)
$Label2 = GUICtrlCreateLabel("Alogrithme :", 768, 64, 59, 17)
global $liste = GUICtrlCreateCombo("RC4", 520, 40, 73, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($liste,"3DES|AES128|AES192|AES256|DES|RC2")
$chiffrer = GUICtrlCreateButton("Chiffrer", 504, 128, 225, 33)
$dechiffrer = GUICtrlCreateButton("déchiffrer", 752, 128, 233, 33)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Chiffrer un texte", 32, 200, 993, 209)
$texte = GUICtrlCreateEdit("", 48, 232, 953, 161)
GUICtrlSetData(-1, "texte")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("chiffrer un fichier", 32, 424, 1033, 81)
$parcourir = GUICtrlCreateButton("parcourir", 104, 464, 193, 33)
$Label3 = GUICtrlCreateLabel("Chemin du fichier", 376, 456, 85, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)


GUISetState(@SW_SHOW)
While 1
        $nMsg = GUIGetMsg()
                Switch $nMsg
                case $GUI_EVENT_CLOSE
                        Exit
                case $rfichier
                        GUICtrlSetState($Group4,$GUI_ENABLE)
                        GUICtrlSetState($parcourir,$GUI_ENABLE)
                        GUICtrlSetState($Label3,$GUI_ENABLE)
                        GUICtrlSetState($Group3,$GUI_DISABLE)
                        GUICtrlSetState($texte,$GUI_DISABLE)
                case $texte
                        GUICtrlSetState($Group4,$GUI_DISABLE)
                        GUICtrlSetState($parcourir,$GUI_DISABLE)
                        GUICtrlSetState($Label3,$GUI_DISABLE)
                        GUICtrlSetState($Group3,$GUI_ENABLE)
                        GUICtrlSetState($texte,$GUI_ENABLE)
                case  $parcourir
                        $sourcefile = FileOpenDialog("tp",@ScriptDir&'\',"tous (*,*)",9)
                        GUICtrlSetData($Label3,"chemin du fichier : "& $sourcefile)
                case $chiffrer
                        ;si on clique sur chiffrer
                        algo()
                        if _IsChecked($rfichier) Then ; on crypte le fichier
                                if $sourcefile = '' Then
                                        MsgBox(0,"tp","choisir un fichier")
                                ElseIf _Crypt_EncryptFile($sourcefile,$sourcefile&".crypt",GUICtrlRead($mdp),$algo) Then
                                        MsgBox(0,"tp","votre fichier a été crypté")
                                Else
                                ;on crypte le texte
                                $cryptdata = _Crypt_EncryptData(GUICtrlRead($texte),GUICtrlRead($mdp),$algo)
                                GUICtrlSetData($texte,BinaryToString($cryptdata))
                                EndIf
                        EndIf
                case $dechiffrer
                        ;si on clique sur dechiffrer
                        algo()
                        if      _IsChecked($rfichier) Then
                                if $sourcefile = '' Then
                                        MsgBox(0,"tp", " choisir un fichier")
                                ElseIf _Crypt_DecryptFile($sourcefile,StringLeft($sourcefile,StringLen($sourcefile)-6),GUICtrlRead($mdp),$algo) Then
                                        MsgBox(0,"tp", "votre fichier a été décrypté")
                                Else
                                        MsgBox(0,"tp","votre fichier n'a pas été décrypté")
                                EndIf
                        Else
                                $cryptdata = _Crypt_EncryptData(GUICtrlRead($texte),GUICtrlRead($mdp),$algo)
                                GUICtrlSetData($texte,BinaryToString($cryptdata))
                        EndIf
        EndSwitch
WEnd
  

Func algo()
        Switch GUICtrlRead($liste)
        Case "3DES"
                $algo = $CALG_3DES
        Case "DES"
                $algo = $CALG_DES
        Case "RC2"
                $algo = $CALG_RC2
        Case "RC4"
                $algo = $CALG_RC4
        EndSwitch
EndFunc

;Func _IsChecked($control) --> Retourne 1 si le controle est checké, sinon 0
; On fait une comparaison de Bits entre la variable $GUI_CHECKED Et notre valeur de controle. Si le Bit correspondant à l'état checké vaut 1, alors notre BitAnd va renvoyé 1.
Func _IsChecked($control)
    Return BitAnd(GUICtrlRead($control),$GUI_CHECKED) = $GUI_CHECKED
EndFunc
C'est surement basique pour la plupart des membres de ce forum mais je suis bloqué sur cette erreur.

Merci de l'aide que vous m'apporterez.

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5866
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Problèmes de fonctions non reconnues dans mon script

#2

Message par mikell » lun. 13 mai 2019 16:28

Pour moi ça a l'air de vouloir marcher pour un fichier si dans le FileOpenDialog on remplace la virgule par un point *.*
Pour du texte ça marche pas, mais c'est normal parce que le "case $chiffrer" ne le prend pas en compte
Il faudrait aussi que la fonction algo() mentionne toutes les valeurs présentes dans la liste, et revoir les positions et dimensions des controles - mais c'est un détail
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Répondre