salut
j'aimerais savoir comment détecter l'insertion d'une clef usb (avoir la lettre de la clef).
j'ai vu ce script mais il n'a pas l'air de marcher (a l'insertion de ma clef rien ne ce passe)
j'aimerais faire un script qui me met un message "clef usb [lettre de la clef] brancher" chaque fois qu'il y a une clef qui se branche.
merci
Modifié en dernier par quelqun le lun. 07 mars 2011 12:53, modifié 1 fois.
$Drives = DriveGetDrive("REMOVABLE")
$Old_Drives = DriveGetDrive("REMOVABLE")
While 1
$Drives = DriveGetDrive("REMOVABLE")
If $Drives[0] <> $Old_Drives[0] Then
If $Drives[0] > $Old_Drives[0] Then ;Périphérique Ajouté
For $i = 1 To $Old_Drives[0]
If $Drives[$i] <> $Old_Drives[$i] Then ExitLoop
Next
ToolTip("Clé USB " & $Drives[$i] & " branchée.", 10, 10, "Information", 1)
Else ;Périphérique Retiré
For $i = 1 To $Drives[0]
If $Old_Drives[$i] <> $Drives[$i] Then ExitLoop
Next
ToolTip("Clé USB " & $Old_Drives[$i] & " débranchée.", 10, 10, "Information", 1)
EndIf
$Old_Drives = $Drives
EndIf
Sleep(500)
WEnd
Pour un de mes projets en cours, j'avais essayé cette méthode, mais elle présentait certains inconvénient et ne m'avais pas vraiment satisfait pour je ne sais plus quelle raison.
Après pas mal de recherches, j'ai finalement réussit à trouvé mon bonheur avec ce bout de code :
Disons simplement, que j'ai sortit le code de son contexte, car en réalité c'est une partie d'un projet en cours.
J'aime bien votre idée de fonction, donc comme vous vous proposez gentiment, il ne vous reste plus qu'à rajouter ce code dans la section Fonctions et UDF.
Je ne doute pas que vous ferez cela très bien. ^^
$Drives = DriveGetDrive("REMOVABLE")
$Old_Drives = DriveGetDrive("REMOVABLE")
;ici $Drives=$Old_Drives
While 1
$Drives = DriveGetDrive("REMOVABLE")
If $Drives[0] <> $Old_Drives[0] Then
If $Drives[0] > $Old_Drives[0] Then ;Périphérique Ajouté
For $i = 1 To $Old_Drives[0] ; ce qui veut dire: For $i = 1 To 1
If $Drives[$i] <> $Old_Drives[$i] Then ExitLoop
Next
ToolTip("Clé USB " & $Drives[$i] & " branchée.", 10, 10, "Information", 1)
toi tu as oublié les 2 'if' qui précèdent !
le premier sert a vérifier que le nouveau nombre de lecteur est différent de l'ancien (preuve qu'un disque a été ajouté ou enlevé)
le second que le nouveau nombre est bien suppérieur a l'ancien et donc qu'il y eu ajout et non retrait (comme indiqué dans le commentaire juste apres le 'then')
donc si avant tu avais 0 disques amovibles et que maintenant tu en as 1 ca fera effectivement
juste la fonction DriveGetDrive("REMOVABLE") sa me renvoi toujours "1" (Disquette 3½ A:) et si je branche la clef sa va renvoyer 2 mais dans le code on compare avec $Old_Drives qui vaut toujours 1 alors sa doit être:
Hé bien, pour moi, le code de BlueCore à l'air de fonctionner tel qu'il est, mais si on doit l'intégrer dans un code plus complexe, alors les choses deviennent un peut plus compliquées.
Le code que j'ai proposé semble plus complexe, mais au moins, on peut l'intégrer facilement dans un projet plus élaboré.
Donc chacun est libre d'utiliser le code qu'il veut.
je voulais savoir parce que coller une partie du code et l'intégrer dans mon programme sans connaître le fonctionnement je saurais pas comment il va agire
Tlem a écrit :Donc chacun est libre d'utiliser le code qu'il veut.
$Drives = DriveGetDrive("REMOVABLE")
$Old_Drives = DriveGetDrive("REMOVABLE")
While 1
$Drives = DriveGetDrive("REMOVABLE")
If $Drives[0] <> $Old_Drives[0] Then
If $Drives[0] > $Old_Drives[0] Then ;Périphérique Ajouté
For $i = 1 To $Old_Drives[0]
If $Drives[$i] <> $Old_Drives[$i] Then ExitLoop
Next
ToolTip("Clé USB " & $Drives[$i] & " branchée.", 10, 10, "Information", 1)
Endif
EndIf
Sleep(500)
WEnd
For $i = 1 To $Old_Drives[0]
If $Drives[$i] <> $Old_Drives[$i] Then ExitLoop
Next
dans mon ordinateur la fonction $Drives=DriveGetDrive("REMOVABLE") renvoi: $Drives[0]==1 et $Drives[1]=="a:" (Disquette 3½ A:) alors si un périphérique et ajouter c'est ce code qui va s'éxecuter: