Voici un code qui permet de détecter les disques présents dans les lecteurs du PC et les disques amovibles connectés à ses ports USB avant d'éteindre le système.
Il ouvre le lecteur CD DVD si il contient un disque. Ce code ne ferme pas le lecteur vu que je possède un PC portable, il ne me sert à rien de mettre cette fonction.
Configuration : Windows Vista, version de l'AutoIt v3.2.10.0
Code : Tout sélectionner
$var = DriveStatus( "f:\" )
If $var="READY" then
Diskoqp()
Else
ordishut()
EndIf
If _RemoveMediaDetect() Then
MsgBox(0, "", "Disque(s) amovible(s) détecté(s)")
Else
ordishut()
EndIf
Func Diskoqp()
CDTray("f:", "open")
MsgBox(4096,"ATTENTION !","Veuillez retirez le disque de votre lecteur SVP et recommencer")
EndFunc
Func ordishut()
Shutdown(1)
EndFunc
Func _RemoveMediaDetect()
$drive = DriveGetDrive("REMOVABLE")
If $drive[0] > 0 And $drive[1] <> "a:" Then
Return True
Else
Return False
EndIf
EndFunc
La fonction _RemoveMediaDetect() qui détecte les disques amovibles sur les ports USB n'est pas de moi, j'avais demandé de l'aide sur le forum officiel américain.
Le problème : vous devrez retirer tous les disques amovibles sur les ports USB ainsi que les disques durs externes avant de relancer le code pour qu'il éteigne le système. Dans la fonction _RemoveMediaDetect() la ligne "If $drive[0] > 0 And $drive[1] <> "a:" " permet d'ignorer les disquettes, je pense qu'en remplaçant a: par la lettre du disque dur externe, il sera ignoré.
Cordialement !