OVH Cloud OVH Cloud

Lettre Lecteur CD ROM

6 réponses
Avatar
Fabrice
Bonjour ,

Comment connaître la lettre utilisé pour le lecteur de CD ROM si par exemple
on connaît le label du CD ?

Merci

6 réponses

Avatar
didier TEST
"Fabrice" a écrit dans le message de
news:
Bonjour ,

Comment connaître la lettre utilisé pour le lecteur de CD ROM si par


exemple
on connaît le label du CD ?

Merci




sans meme connaitre le label (bon d accord ca supose qu il yen a qu'un):

Const C_Inconnu = 0
Const C_Amovible = 1
Const C_Fixe = 2
Const C_Reseau = 3
Const C_CDROM = 4
Const C_RamDisque = 5

Dim MyFSO, d, dc, strRes, Rep

Set MyFSO = CreateObject("Scripting.FileSystemObject")

Set dc = MyFSO.Drives
For Each d In dc
If d.drivetype = C_CDROM Then
' j ai trouvé le CD
End If
Next

DJ
Avatar
Fabrice
Et comment je récupère la lettre ?

Excuse ; je commence !!

"didier TEST" a écrit dans le message de news:


"Fabrice" a écrit dans le message de
news:
Bonjour ,

Comment connaître la lettre utilisé pour le lecteur de CD ROM si par


exemple
on connaît le label du CD ?

Merci




sans meme connaitre le label (bon d accord ca supose qu il yen a qu'un):

Const C_Inconnu = 0
Const C_Amovible = 1
Const C_Fixe = 2
Const C_Reseau = 3
Const C_CDROM = 4
Const C_RamDisque = 5

Dim MyFSO, d, dc, strRes, Rep

Set MyFSO = CreateObject("Scripting.FileSystemObject")

Set dc = MyFSO.Drives
For Each d In dc
If d.drivetype = C_CDROM Then
' j ai trouvé le CD
End If
Next

DJ




Avatar
Eric
Bonjour Fabrice

Et comment je récupère la lettre ?
... je commence



de la part d'un débutant aussi,

sous la déclaration des constantes :

On Error Resume Next

et dans la boucle

For Each d In dc
If d.drivetype = C_CDROM Then
' faire attention à la casse
If d.volumename = "Ton nom de volume" Then
MsgBox d & " " & d.volumename
' j ai trouvé le CD
End If
End If
Next

--
A+
Eric
Avatar
Alain CROS
Bonjour.

Private Declare Function GetLogicalDriveStrings& _
Lib "kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength&, ByVal lpBuffer$)

Private Declare Function GetDriveType& _
Lib "kernel32" Alias "GetDriveTypeA" _
(ByVal nDrive$)

Private Declare Function GetVolumeInformation& _
Lib "kernel32" Alias "GetVolumeInformationA" _
(ByVal lpRootPathName$, ByVal lpVolumeNameBuffer$, _
ByVal nVolumeNameSize&, ByRef lpVolumeSerialNumber&, _
ByRef lpMaximumComponentLength&, ByRef lpFileSystemFlags&, _
ByVal lpFileSystemNameBuffer$, ByVal nFileSystemNameSize&)

Private Declare Function SetErrorMode& _
Lib "kernel32" _
(ByVal wMode&)

Sub Test()
RecupNomLecteursCD "LabelduCD"
End Sub

Sub RecupNomLecteursCD(NomVolume$)
Const DRIVE_CDROM& = 5&, SEM_FAILCRITICALERRORS& = &H1
Dim Lecteur$, Ret&, LeCD$, Label$, I&
Do
Lecteur = Space$(Ret)
Ret = GetLogicalDriveStrings(Ret, Lecteur)
Loop While Len(Lecteur) = 0&
Ret = InStr(Lecteur, vbNullChar)
Do While Ret > 1&
LeCD = Left$(Lecteur, Ret - 1&)
If GetDriveType(LeCD) = DRIVE_CDROM Then
I = 20&
Label = String$(I, vbNullChar)
SetErrorMode SEM_FAILCRITICALERRORS
GetVolumeInformation LeCD, Label, I, 0&, 0&, 0&, vbNullString, 0&
If Left$(Label, InStr(Label, vbNullChar) - 1&) = NomVolume Then
MsgBox LeCD
Exit Do
End If
End If
Lecteur = Right$(Lecteur, Len(Lecteur) - Ret)
Ret = InStr(Lecteur, vbNullChar)
Loop
End Sub

Alain CROS

"Fabrice" a écrit dans le message de news:
Bonjour ,

Comment connaître la lettre utilisé pour le lecteur de CD ROM si par exemple
on connaît le label du CD ?

Merci




Avatar
ng
Salut,

On evitera le FSO et utilisera plutot les APIs.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

didier TEST wrote:
"Fabrice" a écrit dans le message de
news:
Bonjour ,

Comment connaître la lettre utilisé pour le lecteur de CD ROM si par
exemple on connaît le label du CD ?

Merci




sans meme connaitre le label (bon d accord ca supose qu il yen a
qu'un):

Const C_Inconnu = 0
Const C_Amovible = 1
Const C_Fixe = 2
Const C_Reseau = 3
Const C_CDROM = 4
Const C_RamDisque = 5

Dim MyFSO, d, dc, strRes, Rep

Set MyFSO = CreateObject("Scripting.FileSystemObject")

Set dc = MyFSO.Drives
For Each d In dc
If d.drivetype = C_CDROM Then
' j ai trouvé le CD
End If
Next

DJ


Avatar
didier TEST
"Fabrice" a écrit dans le message de
news:
Et comment je récupère la lettre ?

Excuse ; je commence !!



voila un exemple de ce que tu peux recuperer :

Dim MyFSO, d, dc, strRes, Rep

Set MyFSO = CreateObject("Scripting.FileSystemObject")

Set dc = MyFSO.Drives
For Each d In dc
strRes = strRes + vbCr + "---------------------"
strRes = strRes + vbCr + "letter =" & d.driveletter
strRes = strRes + vbCr + "type =" & d.drivetype
strRes = strRes + vbCr + "filesys =" & d.FileSystem
strRes = strRes + vbCr + "path =" & d.Path
strRes = strRes + vbCr + "rootfold =" & d.rootfolder
strRes = strRes + vbCr + "--------------------- "
strRes = strRes + vbCr + "======= fin======="
End If
Next
MSGBOX strRes

Je t'invite a allez sur le site de MS recuperer la doc en CHM vbscript5.6
tres bien faite
ou consulter l'aide en ligne.
ou allez sur le site de Maitre JCB: http://www.bellamyjc.org/
pour avoir la description de ces objets de base.

DJ