Page 1 sur 1

[UDF] DriveEvents

Posté : lun. 20 nov. 2023 00:10
par Numeric
Salut, voici un outil simple et puissant pour détecter les évènements physiques liés a vos lecteurs.
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
de cette UDF (User Defined Function) a été
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
et

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
offre une solution pratique pour
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

Re: [UDF] DriveEvents

Posté : mer. 29 nov. 2023 07:34
par Lola35
Salut, ça a l'air d'un outil intéressant pour gérer les lecteurs amovibles. Je ne connaissais pas cette UDF, merci pour le partage. J'ai regardé le code que tu as posté et je trouve que c'est bien écrit et documenté. J'aime bien la façon dont tu utilises la fonction _RegisterDriveEvents pour surveiller les événements de lecteur et afficher des infos-bulles. C'est pratique et efficace. Tu as testé ton code sur quel système d'exploitation ? Moi je suis sous Windows 10 et je me demande si ça marche aussi. Tu as d'autres exemples d'utilisation de cette UDF ? Je suis curieux de voir ce qu'on peut faire avec.💻🔧👍

Re: [UDF] DriveEvents

Posté : mer. 29 nov. 2023 22:10
par Numeric
Salut et merci...L'UDF est compatible avec avec windows 10 aussi. Pour les exemples d'utilisation, tu en trouveras beaucoup ICI