[Ex] Détection insertion périphérique USB

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[Ex] Détection insertion périphérique USB

#1

Message par Tlem »

Voici un code qui permet de détecter l'insertion d'un périphérique USB et affiche dans la console du code la lettre d'unité qui lui est affectée.

Code : Tout sélectionner

; Code réalisé par ptrex le Mardi 13 2007.

$strComputer = "."
 $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")

 $colEvents = $objWMIService.ExecNotificationQuery _
    ("Select * From __InstanceOperationEvent Within 5 Where " _
        & "TargetInstance isa 'Win32_LogicalDisk'")

While 1
     $objEvent = $colEvents.NextEvent
    If $objEvent.TargetInstance.DriveType = 2 Then
        Select
            Case $objEvent.Path_.Class()="__InstanceCreationEvent"
                Consolewrite("Drive " & $objEvent.TargetInstance.DeviceId & "has been added." & @CR)
            Case $objEvent.Path_.Class()="__InstanceDeletionEvent"
                Consolewrite("Drive " & $objEvent.TargetInstance.DeviceId & "has been removed."& @CR)
        EndSelect
    EndIf
WEnd
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [Ex] Détection insertion périphérique USB

#2

Message par Julien »

Bonjour,

ce script fonctionne assez bien (consomme un peu de mémoire, environ 5Mo) mais ne détecte que les média REMOVABLE, j'ai des disques USB reconnus comme FIXED, comment modifier ce script pour y inclure des périphérique reconnus ainsi et éventuellement en exclure du coup (c: par exemple) ?

D'avance merci.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Détection insertion périphérique USB

#3

Message par Tlem »

Voici ce que dit Microsoft à propos de la propriété DriveType.
DriveType

Data type: uint32
Access type: Read-only

Numeric value that corresponds to the type of disk drive this logical disk represents.

Value / Meaning
0 / Unknown
1 / No Root Directory
2 / Removable Disk
3 / Local Disk
4 / Network Drive
5 / Compact Disc
6 / RAM Disk
Donc si dans le code vous rajoutez un contrôle sur les valeurs adéquates, cela devrait le faire. ;)
Modifiez cette ligne :

Code : Tout sélectionner

If $objEvent.TargetInstance.DriveType = 2 Then
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre