C'est effectivement une solution efficace.
Je me demande même si je n'ajouterai pas un wrapper équivalent au lancement de asuite (parce que tout le monde ne quitte pas sa clé proprement, et repartir de la "sauvegarde" semble poser plus de probleme que ça n'en résout...)
Par contre, dans les dernières versions de ejectFramakey.exe, j'avais un code qui vérifiait le root de la clé :
- Code: Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\FramaKiosk\PortableKioskCode\FramaKiosk.ico
#AutoIt3Wrapper_UseUpx=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
$MsgBox = MsgBox(1, "Ejecter la Framakey", "Voulez-vous éjecter votre Framakey ? Cela fermera TOUTES les applications ouvertes sur le même volume.")
if $MsgBox = 1 Then
If FileExists("..\..\Apps\FramakeyToolboxPortable\App\Framakey_Toolbox\tools\FK_CheckRoot\FK_CheckRoot.exe") Then
Run("..\..\Apps\FramakeyToolboxPortable\App\Framakey_Toolbox\tools\FK_CheckRoot\FK_CheckRoot.exe")
EndIf
$chemin=StringReplace(@ScriptDir,"ejectusb","asuite")
FileDelete($chemin & '\'& "ASuiteTemp.xml")
Run("EjectUSB.exe")
EndIf
La solution "propre" serait d'utiliser les fonctionnalités avancées d'AutoIT (qui, apres tout, a été conçu pour cela) pour :
- afficher Asuite (si dispo)
- ouvrir le menu Fichier
- selectionner "quitter" et valider
- lancer ejectUSB
Mais bon, on est là dans du détail, et les risques de bugs sont plus grand qu'avec un bon vieux FileDelete