Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment détecter clef usb ???

13 réponses
Avatar
LE TROLL
Bonjour,

Comment détecter un lecteur virtuelle clef usb
pour sauvegarde, et ou, restauration ?

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

10 réponses

1 2
Avatar
tking
LE TROLL vient de nous annoncer :
Bonjour,

Comment détecter un lecteur virtuelle clef usb
pour sauvegarde, et ou, restauration ?



Dans la mesure ou Windows l'a detecté, le lecteur est visible avec un
"drivelistbox", composant disponible dans la barre d'outils à droite.
Avatar
Jacques93
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Comment détecter un lecteur virtuelle clef usb
pour sauvegarde, et ou, restauration ?




Pas sûr que cela réponde à ta question, mais avec le composant contrôle
Microsoft SysInfo Control 6.0 (SysInfo.ocx), on peut détecter l'arrivée
d'un périphérique avec l'événement :

Private Sub SysInfo1_DeviceArrival(ByVal DeviceType As Long, _
ByVal DeviceID As Long, _
ByVal DeviceName As String, _
ByVal DeviceData As Long)
MsgBox "DeviceType : " & DeviceType & vbCrLf & _
"DeviceID : " & DeviceID & vbCrLf & _
"DeviceName : " & DeviceName & vbCrLf & _
"DeviceData : " & DeviceData
End Sub


Pour un disque, il me semble que DeviceType = 2, et que l'on peut
déterminer le nom de l'unité grâce à DeviceID (qui est un masque de bits) :

1 (0000 0000 0000 0001) = A
2 (0000 0000 0000 0010) = B
4 (0000 0000 0000 0100) = C
8 (0000 0000 0000 1000) = D
16 (0000 0000 0001 0000) = E
32 (0000 0000 0010 0000) = F
64 (0000 0000 0100 0000) = G
128 (0000 0000 1000 0000) = H

etc ...

Pour le retrait d'un périphérique, il y a l'événement :

Private Sub SysInfo1_DeviceRemoveComplete(ByVal DeviceType As Long, _
ByVal DeviceID As Long, _
ByVal DeviceName As String, _
ByVal DeviceData As Long)
End Sub

--
Cordialement,

Jacques.
Avatar
LE TROLL
Bonjour,

Merci de ta réponse,

Certes le driver est lisible, mais il ne
s'agit pas d'aller écrire par erreur sur un disque
physique par exemple, donc il faut savoir qu'il y
a bien USB, qui peut varier D à Z...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"tking" a écrit dans le message de
news:
| LE TROLL vient de nous annoncer :
| > Bonjour,
| >
| > Comment détecter un lecteur virtuelle clef
usb
| > pour sauvegarde, et ou, restauration ?
|
| Dans la mesure ou Windows l'a detecté, le
lecteur est visible avec un
| "drivelistbox", composant disponible dans la
barre d'outils à droite.
|
|
Avatar
LE TROLL
Bonjour Jacques,

Oui c'est ça, je vais voir, si ça ne marche
pas je te dis... Dommage qu'il faille un OCX, car
avec Vista ça va encore râler si ça se trouve?

Sur un PC moderne, ça ne devrait commencer
qu'à E...

Moi je me demandais autre chose, sans
réellement savoir, en l'espèce, de rechercher par
exemple un dossier à partir de C disons, qui, on
en est certain, n'est pas sur une USB (sauf
miracle), là il suffirait de marcher avec un DIR,
vois-tu un dossier obligatoirement sur un disque
physique mais pas usb (pour les vide = erreur =
pas de problème, par exemple le CD) ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:

| Bonjour LE TROLL,
| LE TROLL a écrit :
| > Bonjour,
| >
| > Comment détecter un lecteur virtuelle clef
usb
| > pour sauvegarde, et ou, restauration ?
| >
|
| Pas sûr que cela réponde à ta question, mais
avec le composant contrôle
| Microsoft SysInfo Control 6.0 (SysInfo.ocx), on
peut détecter l'arrivée
| d'un périphérique avec l'événement :
|
| Private Sub SysInfo1_DeviceArrival(ByVal
DeviceType As Long, _
| ByVal
DeviceID As Long, _
| ByVal
DeviceName As String, _
| ByVal
DeviceData As Long)
| MsgBox "DeviceType : " & DeviceType & vbCrLf &
_
| "DeviceID : " & DeviceID & vbCrLf & _
| "DeviceName : " & DeviceName & vbCrLf &
_
| "DeviceData : " & DeviceData
| End Sub
|
|
| Pour un disque, il me semble que DeviceType = 2,
et que l'on peut
| déterminer le nom de l'unité grâce à DeviceID
(qui est un masque de bits) :
|
| 1 (0000 0000 0000 0001) = A
| 2 (0000 0000 0000 0010) = B
| 4 (0000 0000 0000 0100) = C
| 8 (0000 0000 0000 1000) = D
| 16 (0000 0000 0001 0000) = E
| 32 (0000 0000 0010 0000) = F
| 64 (0000 0000 0100 0000) = G
| 128 (0000 0000 1000 0000) = H
|
| etc ...
|
| Pour le retrait d'un périphérique, il y a
l'événement :
|
| Private Sub SysInfo1_DeviceRemoveComplete(ByVal
DeviceType As Long, _
| ByVal
DeviceID As Long, _
| ByVal
DeviceName As String, _
| ByVal
DeviceData As Long)
| End Sub
|
| --
| Cordialement,
|
| Jacques.
Avatar
Jacques93
LE TROLL a écrit :
Bonjour Jacques,

Oui c'est ça, je vais voir, si ça ne marche
pas je te dis... Dommage qu'il faille un OCX, car
avec Vista ça va encore râler si ça se trouve?



Non, non, ça passe bien. Même semble t-io plus rapide que sous XP

Sur un PC moderne, ça ne devrait commencer
qu'à E...

Moi je me demandais autre chose, sans
réellement savoir, en l'espèce, de rechercher par
exemple un dossier à partir de C disons, qui, on
en est certain, n'est pas sur une USB (sauf
miracle), là il suffirait de marcher avec un DIR,
vois-tu un dossier obligatoirement sur un disque
physique mais pas usb (pour les vide = erreur =
pas de problème, par exemple le CD) ???




Là je ne sais pas. Par contre si tu veux savoir si le media est fixe,
amovible, CD-ROM, etc, il y a FSO. Avec une référece à Microsoft
Scripting Runtime :

Dim fso As FileSystemObject ' Microsoft Scripting RunTime
Dim drv As Drive
Dim s As String

Set fso = New FileSystemObject
For Each drv In fso.Drives
Select Case drv.DriveType
Case 0: s = "Type inconnu"
Case 1: s = "disque amovible"
Case 2: s = "disque dur"
Case 3: s = "disque réseau"
Case 4: s = "CD-Rom"
Case 5: s = "disque RAM"
End Select
Debug.Print drv.DriveLetter & ": " & s;
If drv.IsReady Then Debug.Print " [" & drv.VolumeName & "]"
Next drv
End Sub

Voir aussi la FAQ :

<http://faq.vb.free.fr/index.php?question1&gt;
<http://faq.vb.free.fr/index.php?question6&gt;
--
Cordialement,

Jacques.
Avatar
tking
LE TROLL a émis l'idée suivante :
Bonjour,

Merci de ta réponse,

Certes le driver est lisible, mais il ne
s'agit pas d'aller écrire par erreur sur un disque
physique par exemple, donc il faut savoir qu'il y
a bien USB, qui peut varier D à Z...



Jacques93 donne une piste intéressante, sinon l'astuce est d'interroger
sur la capacité du disque, en general un DD c'est 40go mini... c'est
pas terrible comme méthode, mais dans l'urgence ça marche.
Avatar
LE TROLL
Oui, merci, excellent :o)

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"tking" a écrit dans le message de
news:
| LE TROLL a émis l'idée suivante :
| > Bonjour,
| >
| > Merci de ta réponse,
| >
| > Certes le driver est lisible, mais il ne
| > s'agit pas d'aller écrire par erreur sur un
disque
| > physique par exemple, donc il faut savoir
qu'il y
| > a bien USB, qui peut varier D à Z...
|
| Jacques93 donne une piste intéressante, sinon
l'astuce est d'interroger
| sur la capacité du disque, en general un DD
c'est 40go mini... c'est
| pas terrible comme méthode, mais dans l'urgence
ça marche.
|
|
Avatar
LE TROLL
Jacques, on vient de me donner une réponse simple,
tester la capacité, si j'ai 128, 256, 512, 1, 2,
4, 8, 16 = clef usb présumé, je peux demander
confirmation en cas de doute...
Reste à savoir comment tester la capacité, faut
que je trouve un truc là dessus...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:

| LE TROLL a écrit :
| > Bonjour Jacques,
| >
| > Oui c'est ça, je vais voir, si ça ne
marche
| > pas je te dis... Dommage qu'il faille un OCX,
car
| > avec Vista ça va encore râler si ça se trouve?
|
| Non, non, ça passe bien. Même semble t-io plus
rapide que sous XP
| >
| > Sur un PC moderne, ça ne devrait commencer
| > qu'à E...
| >
| > Moi je me demandais autre chose, sans
| > réellement savoir, en l'espèce, de rechercher
par
| > exemple un dossier à partir de C disons, qui,
on
| > en est certain, n'est pas sur une USB (sauf
| > miracle), là il suffirait de marcher avec un
DIR,
| > vois-tu un dossier obligatoirement sur un
disque
| > physique mais pas usb (pour les vide = erreur
| > pas de problème, par exemple le CD) ???
| >
|
| Là je ne sais pas. Par contre si tu veux savoir
si le media est fixe,
| amovible, CD-ROM, etc, il y a FSO. Avec une
référece à Microsoft
| Scripting Runtime :
|
| Dim fso As FileSystemObject ' Microsoft
Scripting RunTime
| Dim drv As Drive
| Dim s As String
|
| Set fso = New FileSystemObject
| For Each drv In fso.Drives
| Select Case drv.DriveType
| Case 0: s = "Type inconnu"
| Case 1: s = "disque amovible"
| Case 2: s = "disque dur"
| Case 3: s = "disque réseau"
| Case 4: s = "CD-Rom"
| Case 5: s = "disque RAM"
| End Select
| Debug.Print drv.DriveLetter & ": " & s;
| If drv.IsReady Then Debug.Print " [" &
drv.VolumeName & "]"
| Next drv
| End Sub
|
| Voir aussi la FAQ :
|
| <http://faq.vb.free.fr/index.php?question1&gt;
| <http://faq.vb.free.fr/index.php?question6&gt;
| --
| Cordialement,
|
| Jacques.
Avatar
Joël
bonjour le troll
pour tester la capacité:
Private Sub Form_Load()
Dim Fso As New FileSystemObject
Dim Lecteur As Drive
Dim Nom As String
Dim Capacite, Disponible

For Each Lecteur In Fso.Drives

If Lecteur.DriveType = 3 Then
Nom = Lecteur.ShareName
Else
If Lecteur.IsReady Then

'************ Nom de volume ********************'

Nom = Lecteur.VolumeName

'***** Espace disponible et capacité *********'

Capacite = Round(Lecteur.TotalSize / 1024 / 1024 / 1024, 2)
& " Go"

If Capacite < "1" Then
Capacite = Round(Lecteur.TotalSize / 1024 / 1024, 2) & "
Mo"
End If

Disponible = Round(Lecteur.AvailableSpace / 1024 / 1024 /
1024, 2) & " Go"

If Disponible < "1" Then
Disponible = Round(Lecteur.AvailableSpace / 1024 / 1024,
2) & " Mo"
End If

List1.AddItem Lecteur.DriveLetter & " - " & Nom & "
Capacité: " & Capacite & " Disponible: " & Disponible

Else

'******** Lecteur non-disponible *************'

Nom = "< Non prêt >"
Capacite = ""
Disponible = ""

List1.AddItem Lecteur.DriveLetter & " - " & Nom & "Lecteur
disquette ou CD-ROM vide "

End If
End If

Next

End Sub

"LE TROLL" <le a écrit dans le message de news:

Jacques, on vient de me donner une réponse simple,
tester la capacité, si j'ai 128, 256, 512, 1, 2,
4, 8, 16 = clef usb présumé, je peux demander
confirmation en cas de doute...
Reste à savoir comment tester la capacité, faut
que je trouve un truc là dessus...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:

| LE TROLL a écrit :
| > Bonjour Jacques,
| >
| > Oui c'est ça, je vais voir, si ça ne
marche
| > pas je te dis... Dommage qu'il faille un OCX,
car
| > avec Vista ça va encore râler si ça se trouve?
|
| Non, non, ça passe bien. Même semble t-io plus
rapide que sous XP
| >
| > Sur un PC moderne, ça ne devrait commencer
| > qu'à E...
| >
| > Moi je me demandais autre chose, sans
| > réellement savoir, en l'espèce, de rechercher
par
| > exemple un dossier à partir de C disons, qui,
on
| > en est certain, n'est pas sur une USB (sauf
| > miracle), là il suffirait de marcher avec un
DIR,
| > vois-tu un dossier obligatoirement sur un
disque
| > physique mais pas usb (pour les vide = erreur
> | > pas de problème, par exemple le CD) ???
| >
|
| Là je ne sais pas. Par contre si tu veux savoir
si le media est fixe,
| amovible, CD-ROM, etc, il y a FSO. Avec une
référece à Microsoft
| Scripting Runtime :
|
| Dim fso As FileSystemObject ' Microsoft
Scripting RunTime
| Dim drv As Drive
| Dim s As String
|
| Set fso = New FileSystemObject
| For Each drv In fso.Drives
| Select Case drv.DriveType
| Case 0: s = "Type inconnu"
| Case 1: s = "disque amovible"
| Case 2: s = "disque dur"
| Case 3: s = "disque réseau"
| Case 4: s = "CD-Rom"
| Case 5: s = "disque RAM"
| End Select
| Debug.Print drv.DriveLetter & ": " & s;
| If drv.IsReady Then Debug.Print " [" &
drv.VolumeName & "]"
| Next drv
| End Sub
|
| Voir aussi la FAQ :
|
| <http://faq.vb.free.fr/index.php?question1&gt;
| <http://faq.vb.free.fr/index.php?question6&gt;
| --
| Cordialement,
|
| Jacques.




Avatar
LE TROLL
Merci, merci, je vais étudier la question :o)

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Joël" a écrit dans le
message de news:
466b97ee$0$5089$
| bonjour le troll
| pour tester la capacité:
| Private Sub Form_Load()
| Dim Fso As New FileSystemObject
| Dim Lecteur As Drive
| Dim Nom As String
| Dim Capacite, Disponible
|
| For Each Lecteur In Fso.Drives
|
| If Lecteur.DriveType = 3 Then
| Nom = Lecteur.ShareName
| Else
| If Lecteur.IsReady Then
|
| '************ Nom de volume
********************'
|
| Nom = Lecteur.VolumeName
|
| '***** Espace disponible et
capacité *********'
|
| Capacite =
Round(Lecteur.TotalSize / 1024 / 1024 / 1024, 2)
| & " Go"
|
| If Capacite < "1" Then
| Capacite =
Round(Lecteur.TotalSize / 1024 / 1024, 2) & "
| Mo"
| End If
|
| Disponible =
Round(Lecteur.AvailableSpace / 1024 / 1024 /
| 1024, 2) & " Go"
|
| If Disponible < "1" Then
| Disponible =
Round(Lecteur.AvailableSpace / 1024 / 1024,
| 2) & " Mo"
| End If
|
| List1.AddItem Lecteur.DriveLetter
& " - " & Nom & "
| Capacité: " & Capacite & " Disponible: " &
Disponible
|
| Else
|
| '******** Lecteur non-disponible
*************'
|
| Nom = "< Non prêt >"
| Capacite = ""
| Disponible = ""
|
| List1.AddItem Lecteur.DriveLetter
& " - " & Nom & "Lecteur
| disquette ou CD-ROM vide "
|
| End If
| End If
|
| Next
|
| End Sub
|
| "LE TROLL" <le a écrit dans le
message de news:
|
| > Jacques, on vient de me donner une réponse
simple,
| > tester la capacité, si j'ai 128, 256, 512, 1,
2,
| > 4, 8, 16 = clef usb présumé, je peux demander
| > confirmation en cas de doute...
| > Reste à savoir comment tester la capacité,
faut
| > que je trouve un truc là dessus...
| >
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "Jacques93" a écrit dans le
| > message de news:
| >
| > | LE TROLL a écrit :
| > | > Bonjour Jacques,
| > | >
| > | > Oui c'est ça, je vais voir, si ça ne
| > marche
| > | > pas je te dis... Dommage qu'il faille un
OCX,
| > car
| > | > avec Vista ça va encore râler si ça se
trouve?
| > |
| > | Non, non, ça passe bien. Même semble t-io
plus
| > rapide que sous XP
| > | >
| > | > Sur un PC moderne, ça ne devrait
commencer
| > | > qu'à E...
| > | >
| > | > Moi je me demandais autre chose, sans
| > | > réellement savoir, en l'espèce, de
rechercher
| > par
| > | > exemple un dossier à partir de C disons,
qui,
| > on
| > | > en est certain, n'est pas sur une USB
(sauf
| > | > miracle), là il suffirait de marcher avec
un
| > DIR,
| > | > vois-tu un dossier obligatoirement sur un
| > disque
| > | > physique mais pas usb (pour les vide =
erreur
| > | > | > pas de problème, par exemple le CD) ???
| > | >
| > |
| > | Là je ne sais pas. Par contre si tu veux
savoir
| > si le media est fixe,
| > | amovible, CD-ROM, etc, il y a FSO. Avec une
| > référece à Microsoft
| > | Scripting Runtime :
| > |
| > | Dim fso As FileSystemObject ' Microsoft
| > Scripting RunTime
| > | Dim drv As Drive
| > | Dim s As String
| > |
| > | Set fso = New FileSystemObject
| > | For Each drv In fso.Drives
| > | Select Case drv.DriveType
| > | Case 0: s = "Type inconnu"
| > | Case 1: s = "disque amovible"
| > | Case 2: s = "disque dur"
| > | Case 3: s = "disque réseau"
| > | Case 4: s = "CD-Rom"
| > | Case 5: s = "disque RAM"
| > | End Select
| > | Debug.Print drv.DriveLetter & ": " & s;
| > | If drv.IsReady Then Debug.Print " [" &
| > drv.VolumeName & "]"
| > | Next drv
| > | End Sub
| > |
| > | Voir aussi la FAQ :
| > |
| > |
<http://faq.vb.free.fr/index.php?question1&gt;
| > |
<http://faq.vb.free.fr/index.php?question6&gt;
| > | --
| > | Cordialement,
| > |
| > | Jacques.
| >
| >
|
|
1 2