j'essaie de contrôler l'action de l'utilisateur sur le bouton annuler sans succès
J'utilise FileOpenDialog pour ouvrir un fichier
lorsque je clique sur le bouton annuler, la boite de dialogue se ferme, et je ne peux plus cliquer sur le bouton parcourir de nouveau.
► Afficher le texteCode
Code : Tout sélectionner
#include <Array.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <resources.au3>
Global $_1_1, $List1, $Edit1, $Edit_LIGNE
Global $itemNb, $Item, $RapportFile, $rapport, $ReadFile, $file, $OpenDialog, $EditText, $LigneCochee, $EditTexte, $String1; déclaration des variables
Global $j, $k, $m, $lbl2, $lbl, $LigneSelectionnee, $selectedData, $Rappor, $Path, $rapport
Global $Syslog, $Systemlook, $Threatexpert, $Processlibary, $StartUplist
Global $OPT, $CTF_D, $FirewallRAZ, $HostFix, $S_D, $EmptyTemp, $Reg, $REGFIX, $QuarantaineRestoreall, $QuarantineRestore, $Pic1, $SYSRESTORE, $ClipBoard
Global $Group1, $Graphic1, $Graphic2, $Graphic3, $Graphic4, $Graphic5
Global $Label1, $Label2, $Label3, $Label4, $Label5
$_1_1 = GUICreate("OPT", 888, 570, -1, -1, $WS_OVERLAPPEDWINDOW)
Opt("GUIOnEventMode", 1) ; Activation du mode événementiel
GUICtrlSetResizing($_1_1, $GUI_DOCKAUTO + $GUI_DOCKBOTTOM + $GUI_DOCKTOP)
GUISetOnEvent($GUI_EVENT_CLOSE, "FermeGUI")
$Rappor = GUICtrlCreateLabel("ZHPDiag Rapport :", 8, 8, 95, 17)
$Path = GUICtrlCreateButton("Parcourir", 632, 8, 75, 25)
GUICtrlSetOnEvent($Path, "_PATH")
$rapport = GUICtrlCreateInput("", 136, 8, 481, 21)
$S_D = GUICtrlCreateButton("Serv.Dem.", 804, 72, 75, 25)
GUICtrlSetOnEvent($S_D, "_SD")
$CTF_D = GUICtrlCreateButton("CTFDisabled", 804, 104, 75, 25)
GUICtrlSetOnEvent($CTF_D, "_CTF")
$SYSRESTORE = GUICtrlCreateButton("SysRestore", 804, 136, 75, 25)
GUICtrlSetOnEvent($SYSRESTORE, "_SYSRESTORE")
$FirewallRAZ = GUICtrlCreateButton("FirewallRAZ", 804, 168, 75, 25)
GUICtrlSetOnEvent($FirewallRAZ, "_FirewallRAZ")
$EmptyTemp = GUICtrlCreateButton("EmptyTemp", 804, 200, 75, 25)
GUICtrlSetOnEvent($EmptyTemp, "_EmptyTemp")
$QuarantaineRestoreall = GUICtrlCreateButton("QRestoreAll", 804, 232, 75, 25)
GUICtrlSetOnEvent($QuarantaineRestoreall, "_RestoreAll")
$HostFix = GUICtrlCreateButton("HostFix", 804, 264, 75, 25)
GUICtrlSetOnEvent($HostFix, "_HostFix")
$Reg = GUICtrlCreateButton("REG", 804, 296, 75, 25)
GUICtrlSetOnEvent($Reg, "_Reg")
$QuarantineRestore = GUICtrlCreateButton("QRestore", 804, 328, 75, 25)
GUICtrlSetOnEvent($QuarantineRestore, "_Restore")
$Syslog = GUICtrlCreateButton("Syslog", 188, 40, 75, 25)
GUICtrlSetOnEvent($Syslog, "_SYSLOG")
$Systemlook = GUICtrlCreateButton("Systemlook", 268, 40, 75, 25)
GUICtrlSetOnEvent($Systemlook, "_SYSTEMLOOK")
$StartUplist = GUICtrlCreateButton("StartupList", 348, 40, 75, 25)
GUICtrlSetOnEvent($StartUplist, "_STARTUPLIST")
$Threatexpert = GUICtrlCreateButton("Threatexpert", 428, 40, 75, 25)
GUICtrlSetOnEvent($Threatexpert, "_THREATEXPERT")
$Processlibary = GUICtrlCreateButton("ProcessLibrary", 508, 40, 75, 25)
GUICtrlSetOnEvent($Processlibary, "_PROCESSLIBARY")
$ClipBoard = GUICtrlCreateButton("Copier", 800, 440, 75, 25)
GUICtrlSetOnEvent($ClipBoard, "_CLIPBOARD")
$Pic1 = GUICtrlCreatePic("", 800, 376, 78, 31, BitOR($SS_NOTIFY, $WS_CLIPSIBLINGS))
_ResourceSetImageToCtrl(-1, "PAYPAL_JPG")
$Edit_LIGNE = GUICtrlCreateEdit("", 8, 363, 785, 22, $ES_READONLY)
$Edit1 = GUICtrlCreateEdit("", 8, 391, 785, 165)
GUICtrlSetData(-1, "")
GUISetState(@SW_SHOW, $_1_1)
#EndRegion ### END Koda GUI section ###
GUICtrlSetResizing($rapport, $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($Rappor, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($Path, $GUI_DOCKRIGHT + $GUI_DOCKSIZE + $GUI_DOCKTOP)
GUICtrlSetResizing($Systemlook, $GUI_DOCKALL)
GUICtrlSetResizing($StartUplist, $GUI_DOCKALL)
GUICtrlSetResizing($Syslog, $GUI_DOCKALL)
GUICtrlSetResizing($Threatexpert, $GUI_DOCKALL)
GUICtrlSetResizing($Processlibary, $GUI_DOCKALL)
GUICtrlSetResizing($OPT, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($S_D, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($CTF_D, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($FirewallRAZ, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($HostFix, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($EmptyTemp, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($SYSRESTORE, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($Reg, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($QuarantaineRestoreall, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($QuarantineRestore, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($Pic1, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($ClipBoard, $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Pic1
ShellExecute("http://www.google.fr")
Case Else ;
If $OpenDialog <> "" Then
$lbl = "Lignes cochées : "
$lbl2 = ""
$LigneCochee = ""
$LigneSelectionnee = ""
For $i = 0 To $itemNb
If GUICtrlRead($Item[$i], 1) = 1 Then
$lbl = $lbl & ", " & $i
If Not StringInStr($LigneCochee, _GUICtrlListView_GetItemText($List1, $i - 1)) Then
$LigneCochee &= _GUICtrlListView_GetItemText($List1, $i - 1) & @CRLF
EndIf
EndIf
If _GUICtrlListView_GetItemSelected($List1, $i) Then
$lbl2 = " / Ligne selectionnée : " & ($i + 1)
$LigneSelectionnee = _GUICtrlListView_GetItemText($List1, $i)
EndIf
Next
; si aucun N° de ligne n'a été ajouté, c'est qu'aucune ligne n'a été sélectionnée
If $lbl = "Lignes chochées : " Then $lbl = "Aucune ligne chochée"
$lbl &= $lbl2
If GUICtrlRead($Label1) <> $lbl Then ; pour éviter le scintillement on ne met a jour le label que si il a changé
GUICtrlSetData($Label1, $lbl)
GUICtrlSetData($Edit1, $EditTexte & $LigneCochee)
If $LigneSelectionnee <> "" Then GUICtrlSetData($Edit_LIGNE, $LigneSelectionnee)
EndIf
EndIf
EndSwitch
;Until $nMsg = $GUI_EVENT_CLOSE
Wend
Func _PATH()
$OpenDialog = FileOpenDialog("Ouvrir le rapport", @DesktopDir & "\", "rapport (*.txt;*.log)", 1) ; ouverture du fichier placé sur le bureau au format txt, log
[color=#408000]If @error Then
MsgBox(0,"Test", "Aucun fichier choisi")
EndIf[/color]
$itemNb = 0
$itemNb = "" ; déclaration de variable vide
$Item = "" ; déclaration de variable vide
GUICtrlSetData($rapport, $OpenDialog) ; controle le fichier de la dialogbox dans l'inputbox
_GUICtrlListView_DeleteAllItems($List1) ; détruis tout les items de la listview
$file = FileOpen($OpenDialog, 0) ; deja on commence par ouvrir le fichier, sinon, on va avoir du mal a lire dedans !
Dim $Item[1] ; on crée un tableau pour stocker les lignes => tableau 1D
While 1 ; donc on fait une boucle
$ligne = FileReadLine($file) ; ou on lit une ligne
If @error = -1 Then ExitLoop ; si y a une erreur c'est qu'on est a la fin du fichier
If $ligne <> "" Then
$itemNb += 1 ; on incrémente le compteur
ReDim $Item[$itemNb + 1] ; comme on ne sait pas combien il y a de lignes, on redimensionne le tableau ou on les stocke
$Item[$itemNb] = GUICtrlCreateListViewItem($ligne, $List1) ; et on injecte la ligne dans la liste
EndIf
WEnd
FileClose($file); A la fin on oublie pas de fermer le fichier
EndFunc ;==>_PATH
Func _OPT()
EndFunc ;==>_OPT
Func _SD()
EndFunc ;==>_SD
Func _CTF()
EndFunc ;==>_CTF
Func _SYSRESTORE()
EndFunc ;==>_SYSRESTORE
Func _FirewallRAZ()
EndFunc ;==>_FirewallRAZ
Func _EmptyTemp()
EndFunc ;==>_EmptyTemp
Func _RestoreAll()
EndFunc ;==>_RestoreAll
Func _HostFix()
EndFunc ;==>_HostFix
Func _Reg()
EndFunc ;==>_Reg
Func _Restore()
EndFunc ;==>_Restore
Func _CLIPBOARD()
ClipPut(GUICtrlRead($Edit1))
EndFunc ;==>_CLIPBOARD
Func _SYSLOG()
EndFunc ;==>_SYSLOG
Func _SYSTEMLOOK()
EndFunc ;==>_SYSTEMLOOK
Func _STARTUPLIST()
EndFunc ;==>_STARTUPLIST
Func _THREATEXPERT()
EndFunc ;==>_THREATEXPERT
Func _PROCESSLIBARY()
EndFunc ;==>_PROCESSLIBARY
Func FermeGUI() ; Début de la fonction
If @GUI_WinHandle = $_1_1 Then ; Contrôle de la valeur de @GUI_WINHANDLE
Exit ; Sortie du script
EndIf
EndFunc ;==>FermeGUIMerci d'avance
Bonnes fêtes de Pâques.
Laddyrr


