#include #include ;$variable $sync_ok = 0 Global $combo_1 Global $combo_2 Global $cle_usb Global $lecteur ; Création de la boite de dialogue GuiCreate ( "Analyse des liaisons Excel" , 370 , 150 ) ; fenêtre principale GUISetState ( @SW_SHOW ) GUICtrlCreateLabel ( "Lecteur d'éxécution : ", 10, 15) list_lecteur() GUICtrlCreateLabel("Répertoire à analyser : ", 10, 50) $diranalyse = GUICtrlCreateInput("Saisissez ici le répertoire a analyser", 125,48, 200) $LancerTraitement = GUICtrlCreateButton("Lancer l'analyse",60,85,250) $BoutonAnnuler = GUICtrlCreateButton("Annuler",60,110,250) ; Traitement des boutons While 1 $msg = GUIGetMsg ( ) Select ;Fermeture de la boite de dialogue ou clic sur le bouton annuler Case $msg = $GUI_EVENT_CLOSE or $msg = $BoutonAnnuler Exit ;Clic sur le bouton Lanncer le traitement case $msg = $LancerTraitement $LectSelect = GUICtrlRead($combo_1) ;Si le lecteur n'est pas sélectionner, on revient à la boite de dialogue if $LectSelect = "Lecteur USB" Then MsgBox(0,"Alerte","Vous devez sélectionner le lecteur à partir du quel l'application est lancée") Else $repanalys = GUICtrlRead($diranalyse) if $repanalys = "Saisissez ici le répertoire a analyser" Then MsgBox(0,"Alerte","Vous devez indiquer le lecteur et/ou le répertoire a analyser") Else ;Copie du fichier Excel de base contenant la macro $copyFich = FileCopy($LectSelect & "\Autoit\TestLiaison\ListeLiaisons.xls","c:\TestLiaison\ListeLiaisons.xls",8) ;Ouverture de l'application Excle $oExcel = ObjCreate("Excel.application") ;Ouverture du fichier Excel with $oExcel .visible = 1 .WorkBooks.Open("c:\TestLiaison\ListeLiaisons.xls") EndWith ;Génération du tableau contenant la liste des fichiers Excel présent dans le répertoire spécifié $lstfich = _FileListToArray3($repanalys, "*.xls", 0,1,1) ;Ecriture dans le fichier Excel des données du tableau for $element in $lstfich if not IsInt($element) Then ;Exclusion des fichiers présent dans le répertoire Program Files $valexclu1 = stringleft($element,StringLen("c:\Program files")) ;Exclusion des fichiers présent dans le répertoire All users $valexclu2 = StringLeft($element,StringLen("C:\Documents and Settings\All Users")) ;Exclusion des fichiers présent dans le répertoire Local Settings\temp $valexclu3 = StringLeft($element,StringLen("C:\Documents and Settings\Nicolas\Local Settings\Temp")) $valexclu4 = "c:\TestLiaison\ListeLiaisons.xls" if $valexclu1 <> "c:\Program files" And $valexclu2 <> "C:\Documents and Settings\All Users" And $valexclu3 <> "C:\Documents and Settings\Nicolas\Local Settings\Temp" And $valexclu4 <> "c:\TestLiaison\ListeLiaisons.xls" Then ;~ if $valexclu4 <> "c:\TestLiaison\ListeLiaisons.xls" Then Send($element) send("{ENTER}") EndIf EndIf Next ;Lancement de la macro contenu dans le fichier Excel send("!o") Sleep(100) send("m") Sleep(100) send("m") Sleep(100) send("Traitement_Auto") sleep(100) send("{ENTER}") ;Fermeture de la boite de dialogue à reception du focus WinWaitActive("Analyse des liaisons Excel") ExitLoop EndIf EndIf EndSelect WEnd ; - - - - - - - - - - Liste des lecteurs USB Func list_lecteur() $var = DriveGetDrive( "REMOVABLE" );"ALL", "CDROM", "REMOVABLE", "FIXED", "NETWORK", "RAMDISK", or "UNKNOWN" If NOT @error Then For $i = 1 to $var[0] $lecteur = $var[$i] &"|" &$lecteur $combo_1 = GUICtrlCreateCombo("Lecteur USB", 125, 12,100) $combo_2 = GUICtrlSetData(-1, $lecteur) Next Else $label_cle = GUICtrlCreateLabel("PAS DE LECTEURS DETECTES",30,32) EndIf EndFunc