Es ce qu'il y a quequ'un pour m'aider svp ?

Merci
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Récupérer la lettre et le type (disquette, disque dur, etc...) de tous les lecteurs présents sur l'ordinateur.
Structure DriveInfos
DriveLetter.s
DriveType.l
DriveTypeString.s
NameOfVolume.s
EndStructure
NewList DriveList.DriveInfos()
Procedure GetDrive(ListDriveType.l)
Protected Drive.s, DriveLetter.s, DriveType.l, Start.l, LengthDrive.l, DriveTypeString.s
#REMOVABLE_DRIVE = 1
#FIXED_DRIVE = 2
#REMOTE_DRIVE = 4
#CDROM_DRIVE = 8
#RAMDISK_DRIVE = 16
#UNKNOWN_DRIVE = 32
#ALL_DRIVE = 63
; On vide la liste
ClearList(DriveList())
; On récupère la lettre des différents lecteurs présent sur l'ordinateur
Drive = Space(255)
LengthDrive = GetLogicalDriveStrings_(255, @Drive)
For Start = 0 To LengthDrive - 4 Step 4
DriveLetter.s = PeekS(@Drive + Start, 3) ; on récupère une lettre
DriveType.l = GetDriveType_(@DriveLetter) ; on récupère le type du lecteur
Select DriveType ; On donne un nom au type de lecteur
Case #DRIVE_REMOVABLE : DriveType = #REMOVABLE_DRIVE : DriveTypeString.s = "Disquette"
Case #DRIVE_FIXED : DriveType = #FIXED_DRIVE : DriveTypeString.s = "Disque dur"
Case #DRIVE_REMOTE : DriveType = #REMOTE_DRIVE : DriveTypeString.s = "Lecteur réseau"
Case #DRIVE_CDROM : DriveType = #CDROM_DRIVE : DriveTypeString.s = "CD-ROM"
Case #DRIVE_RAMDISK : DriveType = #RAMDISK_DRIVE : DriveTypeString.s = "RamDisk"
Case #DRIVE_UNKNOWN : DriveType = #UNKNOWN_DRIVE : DriveTypeString.s = ""
EndSelect
If DriveType & ListDriveType ; on regarde si le type du lecteur correspond à ceux demandés
AddElement(DriveList())
DriveList()\DriveLetter = RemoveString(DriveLetter, "\")
DriveList()\DriveType = DriveType
DriveList()\DriveTypeString = DriveTypeString
If DriveLetter <> "A:\" And DriveLetter <> "B:\"
DriveList()\NameOfVolume = Space(255)
GetVolumeInformation_(@DriveLetter, @DriveList()\NameOfVolume, 255, 0, 0, 0, 0, 0)
DriveList()\NameOfVolume = Trim(DriveList()\NameOfVolume)
Else
DriveList()\NameOfVolume = ""
EndIf
EndIf
Next
EndProcedure
;- Debut du test
GetDrive(#REMOVABLE_DRIVE | #CDROM_DRIVE | #FIXED_DRIVE)
ResetList(DriveList())
While NextElement(DriveList())
Debug DriveList()\DriveLetter + " " + DriveList()\DriveTypeString + " " + DriveList()\NameOfVolume
Wend
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Récupérer la lettre et le type (disquette, disque dur, etc...) de tous les lecteurs présents sur l'ordinateur.
Structure DriveInfos
DriveLetter.s
DriveType.l
DriveTypeString.s
NameOfVolume.s
EndStructure
NewList DriveList.DriveInfos()
Procedure GetDrive(ListDriveType.l)
Protected Drive.s, DriveLetter.s, DriveType.l, Start.l, LengthDrive.l, DriveTypeString.s
#REMOVABLE_DRIVE = 1
#FIXED_DRIVE = 2
#REMOTE_DRIVE = 4
#CDROM_DRIVE = 8
#RAMDISK_DRIVE = 16
#UNKNOWN_DRIVE = 32
#ALL_DRIVE = 63
; On vide la liste
ClearList(DriveList())
; On récupère la lettre des différents lecteurs présent sur l'ordinateur
Drive = Space(255)
LengthDrive = GetLogicalDriveStrings_(255, @Drive)
For Start = 0 To LengthDrive - 4 Step 4
DriveLetter.s = PeekS(@Drive + Start, 3) ; on récupère une lettre
DriveType.l = GetDriveType_(@DriveLetter) ; on récupère le type du lecteur
Select DriveType ; On donne un nom au type de lecteur
Case #DRIVE_REMOVABLE : DriveType = #REMOVABLE_DRIVE : DriveTypeString.s = "Disquette"
Case #DRIVE_FIXED : DriveType = #FIXED_DRIVE : DriveTypeString.s = "Disque dur"
Case #DRIVE_REMOTE : DriveType = #REMOTE_DRIVE : DriveTypeString.s = "Lecteur réseau"
Case #DRIVE_CDROM : DriveType = #CDROM_DRIVE : DriveTypeString.s = "CD-ROM"
Case #DRIVE_RAMDISK : DriveType = #RAMDISK_DRIVE : DriveTypeString.s = "RamDisk"
Case #DRIVE_UNKNOWN : DriveType = #UNKNOWN_DRIVE : DriveTypeString.s = ""
EndSelect
If DriveType & ListDriveType ; on regarde si le type du lecteur correspond à ceux demandés
AddElement(DriveList())
DriveList()\DriveLetter = RemoveString(DriveLetter, "\")
DriveList()\DriveType = DriveType
DriveList()\DriveTypeString = DriveTypeString
If DriveLetter <> "A:\" And DriveLetter <> "B:\"
DriveList()\NameOfVolume = Space(255)
GetVolumeInformation_(@DriveLetter, @DriveList()\NameOfVolume, 255, 0, 0, 0, 0, 0)
DriveList()\NameOfVolume = Trim(DriveList()\NameOfVolume)
Else
DriveList()\NameOfVolume = ""
EndIf
EndIf
Next
EndProcedure
;- Debut du test
GetDrive(#REMOVABLE_DRIVE | #CDROM_DRIVE | #FIXED_DRIVE)
Txt.s
ResetList(DriveList())
While NextElement(DriveList())
Txt + DriveList()\DriveLetter + " " + DriveList()\DriveTypeString + " " + DriveList()\NameOfVolume + Chr(10)
Wend
MessageRequester("Liste des lecteurs", Txt)