|
|
|

| | | | | | | | |  |
 | 
 | Code source : unité LRJ_WinDrives |  |

|  |
 | |  |

|
Description : cette unité contient les objets LRJ_TWinDrive, LRJ_TListDrive et
LRJ_TWinDrives. LRJ_TListDrive contient la liste des objets LRJ_TWinDrive, l'objet LRJ_TWinDrives
donne accès à la liste des LRJ_TWinDrive en ajoutant des fonctionnalités sur les volumes et
l'objet LRJ_TWinDrive extrait des informations sur chaque volume : type, nom de volume, numéro
de série du volume, taille maximum des noms de fichier, propriétés du volume, le nombre
de bytes libres dans le volume, le nombre de bytes libres pour l'utilisateur, le nombre de bytes
occupés pour l'utilisateur et le nombre total de bytes disponibles pour l'utilisateur.
L'unité est livrée avec une application de démonstration (
voir description plus loin
) qui utilise les fonctionnalités des
objets contenus dans l'unité. Les codes de l'application
sont livrés avec l'unité pour illustrer comment utiliser les objets de
cette unité. L'application de démonstration utilise les unités
LRJ_WindowsPlus
et
LRJ_GridsPlus non livrées avec
l'application (mais téléchargeables gratuitement).
L'unité LRJ_WinDrives met en oeuvre les fonctions de Windows suivantes :
|
|
GetDiskFreeSpaceEx
GetDriveType
GetLogicalDrives
GetVolumeInformation
SetVolumeLabel
|
Déclarations publiques de l'unité
I
Télécharger l'application de démonstration
I
Exemples d'utilisations
Utilise les unités : Windows, SysUtils et
LRJ_ClassesPlus.
Version : 1.5 du 10.05.2009
Auteur : Laurent Hède
Copyright : LorenJo
Nombre de lignes : 490
Réalisée sous : Delphi 6
Systèmes compatibles : NT4, 2000, XP, Vista, serveurs
Prix : 115.00 € H.T.
Déclarations publiques de l'unité :
unit LRJ_WinDrives;
interface
uses
Windows,
Sysutils,
LRJ_ClassesPlus;
type
...............
//------------OBJET----------------------------
LRJ_TWinDrive = class(TObject)
...............
function GetDrivePath: string; // exemple = 'C:\'
function GetDriveType: LRJ_TDriveType;
function GetDriveTypeName(const AType: LRJ_TDriveType): string;
function GetVolumeName: string;
function GetVolumeSerialNumber: DWORD;
function GetMaxTailleNomFichier: DWORD;
function GetSystemFileName: string;
function GetVolumeProprietes: LRJ_TDriveProprietes;
function GetVolumeProprieteName(const APropriete: LRJ_TDrivePropriete) : string;
function GetVolumeProprietesString: string;
function IfSecurised: boolean; //propriété contient lrj_dpPersistentACL
function GetUserFreeBytes: Int64;
function GetUserTotalBytes: Int64;
function GetUserBusyBytes: int64;
function GetFreeBytes: Int64;
function SetVolumeName(const AName: string): boolean;
property DriveChar: char read MODriveChar write SetDriveChar;
end;//-----------FIN--------------------------
//------------OBJET----------------------------
LRJ_TListDrive = class
...............
end;//-----------FIN--------------------------
//------------OBJET----------------------------
LRJ_TWinDrives = class(TObject)
...............
function Count: integer;
function GetDriveIndex(const AIndex: integer): LRJ_TWinDrive;
function GetDriveFromChar(const ADrive: char): LRJ_TWinDrive;
function GetFirstFreeDrive: char;
function GetBusyDrivesString: string;// exemple AC pour 2 drives A et C
function GetFreeDrivesString: string;// idem
procedure RefreshList;
property Drive[const index:integer]: LRJ_TWinDrive read GetDriveIndex;
end;//-----------FIN--------------------------
|
Application de démonstration

L'onglet "Liste" affiche la liste des lecteurs présents sur la machine. Lorsqu'on clique sur un
lecteur, les informations concernant le lecteur s'affichent dans la grille.
L'onglet "Changer le nom du lecteur" permet de changer le libellé d'un lecteur (mais pas
la lettre attribuée au lecteur). Cette modification n'est pas possible
sur certains lecteurs (exemple : disquette, lecteur de CD-ROM).
Exemples d'utilisations
Charger la liste des lecteurs occupés dans ComboBox1
var
zDrives: LRJ_TWinDrives;
zDrive: LRJ_TWinDrive;
i: integer;
begin
zDrives := LRJ_TWinDrives.Create;
for i:= 0 to zDrives.Count-1 do
begin
zDrive := zDrives.Drive[i];
comboBox1.Items.Add(zDrive.DriveChar);
end;
zDrives.Free;
end;
|
Changer le libellé d'un lecteur (d'un disque car c'est le seul type de lecteur dont on peut
modifier le libellé)
var
zDrive: LRJ_TWinDrive;
begin
if ComBoBox1.ItemIndex > -1 then
if length(editNewName.Text) > 0 then
begin
zDrive := LRJ_TWinDrive.Create;
zDrive.DriveChar := ComBoBox1.Items[ComBoBox1.ItemIndex][1];
if not zDrive.SetVolumeName(editNewName.Text) then
LRJ_ShowMessageLastErrorString;
zDrive.Free;
end;
end;
|
Tester la place libre sur le disque C
var
zDrive: LRJ_TWinDrive;
begin
zDrive := LRJ_TWinDrive.Create;
zDrive.DriveChar := 'C';
if zDrive.GetFreeBytes < SizeNeeded then
begin
//problème
end;
zDrive.Free;
end;
|
Charger la liste des lecteurs/graveurs de CD/DVD dans ComboBox1
var
zDrives: LRJ_TWinDrives;
zDrive: LRJ_TWinDrive;
i: integer;
begin
zDrives := LRJ_TWinDrives.Create;
for i:= 0 to zDrives.Count-1 do
begin
zDrive := zDrives.Drive[i];
if zDrive.GetDriveType = lrj_dtCDROM then
begin
comboBox1.Items.Add(zDrive.DriveChar);
end;
end;
zDrives.Free;
end;
|
Vous n'avez pas trouvé d'exemple répondant à votre problématique ?
Cliquez sur ce lien.
|
|
 |
 | |  |
|
|