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
#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
Merci de l'aide que vous m'apporterez.