Je ne sais pas si mon langage est adéquat mais j'utilise FileOpenDialog( ) pour ouvrir l'explorateur sur un dossier donné,
et si laissant cette fenètre ouverte, je reviens à autoit pour modifier un changer et executer une action, et bien l'action ne s'accomplit pas.
Il semble que cette ouverture de fenetre de l'explorateur bloque tout et je ne sais comment faire.
J'ai remarqué que cette fenetre explorateur s'ouvre dans le même processus qu'autoit et n'est donc pas une fenetre indépendante, et c'est peut-être de là que ça vient.
► Afficher le texte
Code : Tout sélectionner
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
;#include <GDIPlus.au3>
;#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
;#include <WinAPIFiles.au3>
;#include <ComboConstants.au3>
$gui = GUICreate("Créer les dossiers de l'opération", 676, 540)
; Create a input text dossier racine.
$dossier_racine = GUICtrlCreateLabel("Dossier racine", 8, 8, 136, 17)
$dossier_racineinput = GUICtrlCreateInput("", 8, 25, 660, 21)
GuiCtrlSetData($dossier_racineinput, IniRead ( "Liste_dossiers_a_creer\params.ini", "generale", "dossier racine", "" ) )
; Create a radio control departement.
$departement = GUICtrlCreateGroup("Département", 8, 50, 660, 80)
GUIStartGroup()
Local $idRadio1 = GUICtrlCreateRadio("2A_Corse-du-Sud", 10, 70, 103, 20)
Local $idRadio2 = GUICtrlCreateRadio("2B_Haute-Corse", 113, 70, 100, 20)
Local $idRadio3 = GUICtrlCreateRadio("04_Alpes-de-Haute-Provence", 215, 70, 155, 20)
Local $idRadio4 = GUICtrlCreateRadio("05_Hautes-Alpes", 380, 70, 100, 20)
Local $idRadio5 = GUICtrlCreateRadio("06_Alpes-Maritimes", 485, 70, 112, 20)
Local $idRadio6 = GUICtrlCreateRadio("11_Aude", 597, 70, 60, 20)
Local $idRadio7 = GUICtrlCreateRadio("13_Bouches-du-Rhône", 10, 95, 125, 20)
Local $idRadio8 = GUICtrlCreateRadio("30_Gard", 140, 95, 60, 20)
Local $idRadio9 = GUICtrlCreateRadio("34_Hérault", 201, 95, 73, 20)
Local $idRadio10 = GUICtrlCreateRadio("48_Lozère", 275, 95, 70, 20)
Local $idRadio11 = GUICtrlCreateRadio("66_Pyrénées-Orientales", 345, 95, 135, 20)
Local $idRadio12 = GUICtrlCreateRadio("83_Var", 480, 95, 55, 20)
Local $idRadio13 = GUICtrlCreateRadio("84_Vaucluse", 537, 95, 80, 20)
; Create a radio control type opération.
$type_operation = GUICtrlCreateGroup("Type opération", 8,130, 165, 50)
GUIStartGroup()
Local $idRadio14 = GUICtrlCreateRadio("Diagnostics", 10, 150, 70, 20)
Local $idRadio15 = GUICtrlCreateRadio("Fouilles", 90, 150, 70, 20)
; Create a input text communes.
GUICtrlCreateLabel("Commune", 8, 185, 136, 17)
$dossier_communes = GUICtrlCreateInput("", 8, 205, 660, 21)
$focus = GUICtrlSetState( $dossier_communes , $GUI_FOCUS )
; Create a input text nom chantier.
GUICtrlCreateLabel("Nom chantier", 8, 235, 136, 17)
$nom_chantierinput = GUICtrlCreateInput("", 8, 255, 660, 21)
; Create a input text code SGA.
GUICtrlCreateLabel("Code SGA", 8, 287, 250, 17)
$code_saga_input = GUICtrlCreateInput("", 8, 306, 660, 21)
; Create a input text chemin des dossiers à créer.
GUICtrlCreateLabel("Chemin des dossiers à créer: cliquer ici --->", 8, 347, 250, 17)
$chemininput = GUICtrlCreateInput("" ,8, 367, 660, 21)
; Create a input text des dossiers à créer.
GUICtrlCreateLabel("Liste des dossiers à créer (séparés par des virgules sans espace)", 8, 403, 350, 17)
$dossiers = GUICtrlCreateInput("" ,8, 423, 660, 21)
GuiCtrlSetData($dossiers, IniRead ( "Liste_dossiers_a_creer\params.ini", "generale", "liste dossiers", "" ) )
; Create a input text c'est fait.
$fait = GUICtrlCreateLabel("" ,480, 454, 200, 30)
GUICtrlSetFont ( $fait, 18 , 700)
;cadres
$cadre1 = GUICtrlCreateGraphic(4, 4, 668, 330, $SS_GRAYFRAME)
GUICtrlSetColor(-1, 0)
$cadre2 = GUICtrlCreateGraphic(4, 337, 668, 58, $SS_GRAYFRAME)
GUICtrlSetColor(-1, 0)
$cadre3 = GUICtrlCreateGraphic(4, 398, 668, 130, $SS_GRAYFRAME)
GUICtrlSetColor(-1, 0)
; boutons
$ok = GUICtrlCreateButton("chemin des dossiers à créer",220,340,169,25)
GUICtrlSetBkColor($ok, 0xFFE8AD )
$doss = GUICtrlCreateButton("créer les dossiers",8,454,380,30)
GUICtrlSetBkColor($doss, 0xE69CFF )
$ouvrir = GUICtrlCreateButton("ouvrir le dossier",8,494,150,30)
GUICtrlSetBkColor($ouvrir, 0xFFFF66 )
Local $idNewsubmenu = GUICtrlCreateContextMenu($ouvrir)
Local $itemO = GUICtrlCreateMenuItem("ouvrir le dossier", $idNewsubmenu)
Local $itemOF = GUICtrlCreateMenuItem("ouvrir le dossier et fermer", $idNewsubmenu)
GUISetState()
Global $departement, $operation, $chemin, $chemin_liste_dossiers, $code_saga_input
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
$chemin_liste_dossiers = "Liste_dossiers_a_creer"
DirCreate($chemin_liste_dossiers)
IniWrite ( "Liste_dossiers_a_creer\params.ini", "generale", "dossier racine", GUICtrlRead($dossier_racineinput))
IniWrite ( "Liste_dossiers_a_creer\params.ini", "generale", "liste dossiers", GUICtrlRead($dossiers ))
Exit
Case $idRadio1, $idRadio2, $idRadio3, $idRadio4, $idRadio5, $idRadio6, $idRadio7, $idRadio8, $idRadio9, $idRadio10, $idRadio11, $idRadio12, $idRadio13
If GUICtrlRead($nMsg) = 1 Then $departement = GUICtrlRead($nMsg, 1)
Case $idRadio14, $idRadio15
If GUICtrlRead($nMsg) = 1 Then $operation = GUICtrlRead($nMsg, 1)
Case $ok
$focus = GUICtrlSetState( $dossiers , $GUI_FOCUS )
$racine = GUICtrlRead($dossier_racineinput)
$commune = GUICtrlRead($dossier_communes)
$chantier = GUICtrlRead($nom_chantierinput)
If $racine <> "" and $departement <> "" and $operation <> "" and $commune <> "" and $chantier <> "" and $code_saga_input <> "" Then
$chemin = $racine & "\" & $departement & "\" & $operation & "\" & $commune & "_" & $chantier & "_" & GUICtrlRead($code_saga_input)
GuiCtrlSetData($chemininput, $chemin)
EndIf
GuiCtrlSetData( $fait , "" )
$focus = GUICtrlSetState( $doss , $GUI_FOCUS )
Case $doss
If $chemin <> "" and $dossiers <> "" Then
$dossiers_a_creer = StringSplit( GUICtrlRead($dossiers ), ",")
For $i = 1 To $dossiers_a_creer[0]
DirCreate($chemin & "\" & $dossiers_a_creer[$i])
Next
GuiCtrlSetData( $fait , "C'est fait !" )
EndIf
Case $ouvrir
ControlClick ( "", "", $ouvrir, "right")
Case $itemO
FileOpenDialog( "ouvrir le dossier crée", GUICtrlRead($chemininput ), "All (*.*)" )
Case $itemOF
GUISetState ( @SW_HIDE )
WinClose($gui)
FileOpenDialog( "ouvrir le dossier crée", GUICtrlRead($chemininput ), "All (*.*)" )
Exit
EndSwitch
WEnd