pour tout autres actions comme: empêcher l'utilisation de vos ports USB etc.. il vous suffit juste de le demander à l'UDF.
La fonction
Code : Tout sélectionner
_RegisterDriveEvents
conçue pour permettre la surveillance d'événements liés aux lecteurs, en
mettant l'accent sur les lecteurs amovibles. Elle offre une solution simple et
efficace pour détecter et réagir aux changements d'état tels que l'insertion,
le retrait, ou tout autre événement associé aux lecteurs spécifiés.
L'utilité principale de cette fonction réside dans sa capacité à fournir des
informations en temps réel sur les événements de lecteur, facilitant ainsi le
développement d'applications ou de scripts qui doivent réagir de manière
dynamique aux modifications de l'environnement de stockage. Par exemple, vous
pourriez utiliser cette fonction pour détecter l'insertion d'une clé USB et
effectuer des actions automatiques, telles que la copie de fichiers ou
l'affichage de notifications.
En utilisant les paramètres optionnels tels que
Code : Tout sélectionner
$bReinitLabels
Code : Tout sélectionner
$bAutoEject
vous pouvez personnaliser le comportement de la surveillance des événements
pour répondre aux besoins spécifiques de votre application. La fonction peut
être intégrée dans des boucles de script pour une surveillance continue tout
en minimisant l'utilisation des ressources du système.
En résumé, la fonction
Code : Tout sélectionner
_RegisterDriveEvents
surveiller et réagir aux événements de lecteur, contribuant ainsi à la création
d'applications plus réactives et fonctionnelles.
exemple d'utilisation
#include <DriveEvents.au3>; l'udf en question.
#include <Misc.au3> ; pour l'interruption de la boucle.
#include <TrayConstants.au3> ; pour l'affichage de message.
; Enregistre les événements de lecteur: considère l'évenement en cours par exemple une clé usb déjà inserer
;mais n'ejecte pas automatiquement la clé à cause du dernier paramètre mis à false
_RegisterDriveEvents("REMOVABLE", False, False)
; Boucle principale jusqu'à ce que la touche "Esc" soit enfoncée
While Not _IsPressed("1B")
; Vérifie si un événement de lecteur a eu lieu
If _driveEventOcurred() Then
; Construit une chaîne d'informations sur l'événement
Local $sInfos = "" & @CRLF & "Event from : " & _getDriveName() & @CRLF & _
"Drive Label : " & StringUpper(_getEventDriveLabel()) & @CRLF & _
"Serial number : " & _getEventDriveSerial() & @CRLF & _
"State : " & _getEventDriveState()
; Affiche une infobulle avec les informations de l'événement
TrayTip($_g_DRIVE_NAME & " Events ", $sInfos, 3500, BitOR($TIP_ICONASTERISK, $TIP_NOSOUND))
; Écrit les informations de l'événement dans la console
ConsoleWrite($sInfos & @CRLF)
EndIf
; Pause pour éviter une utilisation excessive du processeur
Sleep(10)
WEnd
#include <Misc.au3> ; pour l'interruption de la boucle.
#include <TrayConstants.au3> ; pour l'affichage de message.
; Enregistre les événements de lecteur: considère l'évenement en cours par exemple une clé usb déjà inserer
;mais n'ejecte pas automatiquement la clé à cause du dernier paramètre mis à false
_RegisterDriveEvents("REMOVABLE", False, False)
; Boucle principale jusqu'à ce que la touche "Esc" soit enfoncée
While Not _IsPressed("1B")
; Vérifie si un événement de lecteur a eu lieu
If _driveEventOcurred() Then
; Construit une chaîne d'informations sur l'événement
Local $sInfos = "" & @CRLF & "Event from : " & _getDriveName() & @CRLF & _
"Drive Label : " & StringUpper(_getEventDriveLabel()) & @CRLF & _
"Serial number : " & _getEventDriveSerial() & @CRLF & _
"State : " & _getEventDriveState()
; Affiche une infobulle avec les informations de l'événement
TrayTip($_g_DRIVE_NAME & " Events ", $sInfos, 3500, BitOR($TIP_ICONASTERISK, $TIP_NOSOUND))
; Écrit les informations de l'événement dans la console
ConsoleWrite($sInfos & @CRLF)
EndIf
; Pause pour éviter une utilisation excessive du processeur
Sleep(10)
WEnd