Détecer la présence d'un disque amovible et la présence d'un CD dans le lecteur

Résolu
razaphi Messages postés 43 Date d'inscription dimanche 18 juin 2006 Statut Membre Dernière intervention 7 août 2007 - 30 mai 2007 à 11:34
razaphi Messages postés 43 Date d'inscription dimanche 18 juin 2006 Statut Membre Dernière intervention 7 août 2007 - 5 juin 2007 à 10:01
Salut les Codeurs. J'ai un problème. Voila, je voudrai savoir comment détecter automatiquement la presence d'un disque amovible dans mon application et y accéder pour y copier un fichier. Egalement comment verifier si un CD est présent ou non dans le lecteur CD. Merci pour votre bonne aide et votre comprehension.

4 réponses

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
30 mai 2007 à 11:57
Bonjour,
Si VB.Net ne t'offre pas du tout fait (ce que j'ignore), tu peux toujours utiliser les 2 fonctions ci-après de l'Api de Windows :
GetLogicalDrives de la librairie Kernel32
et
GetDriveType de la librairie Kernel32

La 1ère listera tous les lecteurs disponible
La 2ème (pour chaque lecteur trouvé) t'en indiquera le type
Il te suffira alors de lister la racine de tout ce qui est amovible pour voir si elle contient quelque-chose et quoi ...

Il me semble bien avoir fourni ce code il y a environ 2 mois, en réponse à une question identique sous VB6
Le principe et les fonctions utilisées sont les mêmes (seul le typage est à modifier de long à Integer sous VB.Net)
Tu peux également te passer de la première de ces 2 fonctions (GetLogicalDrives) et la remplacer par l'utilisation de :

Private Sub FindAllDrives()
  Dim strDrives() As String
  strDrives = Directory.GetLogicalDrives  
  Dim strDrive As String
  For Each strDrive In strDrives
    DriveList.Items.Add(strDrive)
  Next
  DriveList.SelectedIndex = 1
End Sub
pour lister tes lecteurs, puis utiliser la fonction GetDriveType pour déterminer le type de chaque lecteur ainsi trouvé.
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
30 mai 2007 à 11:46
Salut,

Regarde sur le site, il y a des source qui se rapporte à ta demande, me semble bien que Renfield à quelque chose au niveau Cd....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
30 mai 2007 à 11:48
Salut,

je viens de voir une API qui pourrait t'intéresser (enfin j'espere)

Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" ( _
ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
0
razaphi Messages postés 43 Date d'inscription dimanche 18 juin 2006 Statut Membre Dernière intervention 7 août 2007
5 juin 2007 à 10:01
Merci les codeurs, j'ai pu par vos interventions trouver solution à mon probleme.
0
Rejoignez-nous