VBA : liste des volumes accessibles

Le
Jac
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jac
Le #5028811
... et questions subsidiaires : taille des volumes, taille de la zone
occupée ou vide.

"Jac" %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis le PC actif et parmi les volumes trouvés, j'aimerais aussi
identifier les volumes sur lesquels je ne peux pas écrire (clé USB
verrouillée, volume en lecture seule, ...) ainsi que les lecteurs de CD /
DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac


MichDenis
Le #5028641
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac
MichDenis
Le #5028631
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller !
Évidemment, tu en supprimes UN.



"MichDenis"
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac
Jac
Le #5028541
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis"
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac






MichDenis
Le #5028511
Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis"
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac






MichDenis
Le #5028501
Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis"
Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis"
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac






Jac
Le #5028451
Impec... Juste que "objDrive.TotalSize " me donne la capacité totale du
disque du genre 500 Go alors que le disque formaté, donc utile, n'en fait
plus que 465 ! Et comme je ne trouve rien dans l'aide à ce sujet, je m'en
remets à toi...

"MichDenis"
Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis"
Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" %
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un
copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis"
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume
en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac












MichDenis
Le #5028421
| Et comme je ne trouve rien dans l'aide à ce sujet, je m'en remets à toi...

Les propriétés disponibles sont là :

http://www.microsoft.com/technet/scriptcenter/guide/sas_scr_czxq.mspx?mfr=true


Et si tu désires des info. plus techniques sur les partitions de tes disques durs,
il y a ceci : (Windows vista, Xp , 2000, windows Server 2003)

'-------------------------------
Sub test()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colDiskPartitions = objWMIService.ExecQuery _
("Select * from Win32_DiskPartition")
For Each objPartition In colDiskPartitions
Message = Message & "Block Size: " & vbTab & objPartition.BlockSize & vbCrLf
Message = Message & "Bootable: " & vbTab & objPartition.Bootable & vbCrLf
Message = Message & "Boot Partition: " & vbTab & objPartition.BootPartition & vbCrLf
Message = Message & "Description: " & vbTab & objPartition.Description & vbCrLf
Message = Message & "Device ID: " & vbTab & objPartition.DeviceID & vbCrLf
Message = Message & "Disk Index: " & vbTab & objPartition.DiskIndex & vbCrLf
Message = Message & "Index: " & vbTab & objPartition.Index & vbCrLf
Message = Message & "Name: " & vbTab & objPartition.Name & vbCrLf
Message = Message & "Number Of Blocks: " & vbTab & _
objPartition.NumberOfBlocks & vbCrLf
Message = Message & "Primary Partition: " & vbTab & _
objPartition.PrimaryPartition & vbCrLf
Message = Message & "Size: " & vbTab & objPartition.Size & vbCrLf
Message = Message & "Starting Offset: " & vbTab & _
objPartition.StartingOffset & vbCrLf
Message = Message & "Type: " & vbTab & objPartition.Type & vbCrLf
MsgBox Message
Message = ""
Next

End Sub
'-------------------------------


"Jac" Impec... Juste que "objDrive.TotalSize " me donne la capacité totale du
disque du genre 500 Go alors que le disque formaté, donc utile, n'en fait
plus que 465 ! Et comme je ne trouve rien dans l'aide à ce sujet, je m'en
remets à toi...

"MichDenis"
Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis"
Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" %
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un
copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis"
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume
en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac












Jac
Le #5028361
Merci beaucoup pour tout ce temps passé à m'apporter une solution.

J'ai une amorce de solution à propos des tailles calculées par XL et celles
affichées par l'explorateur en divisant les gigas par 1048576 (1024 * 1024).
Moi, je divisais par 1 million tout simplement.
Pour le reste, avec technet, j'ai de la lecture pour les longues soirées
d'hiver que je qualifierais plutôt de courtes devant un clavier...

Jac

"MichDenis" Ob7fb%
| Et comme je ne trouve rien dans l'aide à ce sujet, je m'en remets à
toi...

Les propriétés disponibles sont là :

http://www.microsoft.com/technet/scriptcenter/guide/sas_scr_czxq.mspx?mfr=true


Et si tu désires des info. plus techniques sur les partitions de tes
disques durs,
il y a ceci : (Windows vista, Xp , 2000, windows Server 2003)

'-------------------------------
Sub test()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colDiskPartitions = objWMIService.ExecQuery _
("Select * from Win32_DiskPartition")
For Each objPartition In colDiskPartitions
Message = Message & "Block Size: " & vbTab & objPartition.BlockSize &
vbCrLf
Message = Message & "Bootable: " & vbTab & objPartition.Bootable &
vbCrLf
Message = Message & "Boot Partition: " & vbTab &
objPartition.BootPartition & vbCrLf
Message = Message & "Description: " & vbTab & objPartition.Description
& vbCrLf
Message = Message & "Device ID: " & vbTab & objPartition.DeviceID &
vbCrLf
Message = Message & "Disk Index: " & vbTab & objPartition.DiskIndex &
vbCrLf
Message = Message & "Index: " & vbTab & objPartition.Index & vbCrLf
Message = Message & "Name: " & vbTab & objPartition.Name & vbCrLf
Message = Message & "Number Of Blocks: " & vbTab & _
objPartition.NumberOfBlocks & vbCrLf
Message = Message & "Primary Partition: " & vbTab & _
objPartition.PrimaryPartition & vbCrLf
Message = Message & "Size: " & vbTab & objPartition.Size & vbCrLf
Message = Message & "Starting Offset: " & vbTab & _
objPartition.StartingOffset & vbCrLf
Message = Message & "Type: " & vbTab & objPartition.Type & vbCrLf
MsgBox Message
Message = ""
Next

End Sub
'-------------------------------


"Jac" %
Impec... Juste que "objDrive.TotalSize " me donne la capacité totale du
disque du genre 500 Go alors que le disque formaté, donc utile, n'en fait
plus que 465 ! Et comme je ne trouve rien dans l'aide à ce sujet, je m'en
remets à toi...

"MichDenis"
Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis"
Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" %
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de
les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un
copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis"
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier
les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume
en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac

















Publicité
Poster une réponse
Anonyme