Code source
Code source

  Présentation
  Unités exemple gratuites
  Unités commercialisées
  Conditions d'utilisation
  Comment acheter
  Vendez vos codes
Unités commercialisées

  LRJ_DosDevice
  LRJ_FileMapped
  LRJ_ModifDateTime
  LRJ_ShellUtils
  LRJ_TokenAPI
  LRJ_WinACL
  LRJ_WinBrowseDialog
  LRJ_WinCreateProcess
  LRJ_WinDesktop
  LRJ_WinDirectories
  LRJ_WinDocRecents
  LRJ_WinDrives
  LRJ_WinFavorisWeb
  LRJ_WinFiles
  LRJ_WinIconNotifArea
  LRJ_WinInternetShortcut
  LRJ_WinMenuFolder
  LRJ_WinModule
  LRJ_WinNetApi
  LRJ_WinNetLocalGroups
  LRJ_WinNetUsers
  LRJ_WinPrivileges
  LRJ_WinProcess
  LRJ_WinRecycleBin
  LRJ_WinRegion
  LRJ_WinRegAppPath
  LRJ_WinShellLink
  LRJ_WinShellUI
  LRJ_WinSID
  LRJ_WinStation
  LRJ_WinTokenGroups
  LRJ_WinTrackChangeDir
  LRJ_WinVolumes
  LRJ_WinWorkingSet

   Accueil | GlobalDesk | Code source Delphi | Développements | Votre compte | Contact   

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.


 Accueil | GlobalDesk | Code source Delphi | Développements | Votre compte | Contact 
Copyright © LorenJo 2000-2009    Notice légale