Diskinfo v1.0.0

Description

3 éme contribution pour fêter ma première semaine sur Delphi ;) Un programme qui traite les informations des volumes du PC.

Source / Exemple :


{===============================================================================
Code Source : BEAUMONT Christophe
Version     : 1.0.0
Date        : 26 Février 2010

Etude 03 - Exemple de récupération d'informations sur les volumes d'un PC.
===============================================================================}

unit f_Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Gauges, StdCtrls, FileCtrl;

type
  TForm_Main = class(TForm)
    Drives: TDriveComboBox;
    TypeDrive: TLabel;
    NameDrive: TLabel;
    SerialNumber: TLabel;
    SystemeFile: TLabel;
    FreeSpace: TLabel;
    TotalSpace: TLabel;
    procedure SelectNewDisk(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form_Main: TForm_Main;

implementation

{$R *.dfm}

// Cette procédure sera automatiquement exécutée à chaque changement du composant
// TDriveComboBox.
procedure TForm_Main.SelectNewDisk(Sender: TObject);
// On fait les déclarations qui vont être nécessaires à nos fonctions
var BuffNom : Array[0..255]of Char; // Buffer pour GetVolumeInformation
    BuffSys : Array[0..255]of Char; // Buffer pour GetVolumeInformation
    Serie, Long, Flags : DWord; // pour GetVolumeInformation
    TDrive  : String; // Pour stocker les types de volumes
    FreeBytesAvailable, TotalNumberofBytes, TotalNumberofFreeBytes : TLargeInteger;
begin
// on récupère les informations du volume sélectionné dans le TDriveComboBox
 GetVolumeInformation(PChar(Drives.Drive+':\')
                         ,@BuffNom,SizeOf(BuffNom) // contiendra le nom
                         ,@Serie                   // contiendra le n° de série
                         ,Long
                         ,Flags
                         ,@BuffSys,SizeOf(BuffSys)); // et le type de fichiers
// on récupère l'information sur le type de volume sélectionné dans le TDriveComboBox
  case GetDriveType(PChar(Drives.Drive+':\')) of
    DRIVE_UNKNOWN     : TDrive := 'Lecteur inconnu'; // met le résultat dans un String
    DRIVE_NO_ROOT_DIR : TDrive := 'Chemin racine invalide';
    DRIVE_REMOVABLE   : TDrive := 'Disque Amovible';
    DRIVE_FIXED       : TDrive := 'Disque Dur';
    DRIVE_REMOTE      : TDrive := 'Disque Internet';
    DRIVE_CDROM       : TDrive := 'Lecteur CD';
    DRIVE_RAMDISK     : TDrive := 'Disque RAM';
  end;
// On affiche le nom du volume sélectionné
  NameDrive.Caption := 'Nom du Volume : '+BuffNom;
// on affiche le système de fichiers ( NTFS , FAT32 )
  SystemeFile.Caption := 'Système de Fichiers : '+BuffSys;
// on affiche le numéro de série du volume
  SerialNumber.Caption := 'Numéro de Série : '+IntToStr(Serie);
  TypeDrive.Caption := 'Type de lecteur : '+TDrive;
// Si le string est différent de NUL alors le volume existe
  if TDrive <>'' then
// On utilise GetDiskFreeSpaceEx pour traiter des volumes supérieurs à 2Go
    GetDiskFreeSpaceEx(PChar(Drives.Drive+':\'),FreeBytesAvailable, TotalNumberofBytes, @TotalNumberofFreeBytes);
// on affiche le nombre d'octets libres
    FreeSpace.Caption := IntToStr(TotalNumberofFreeBytes)+' octets libres';
// on affiche la capacité totale du volume en octets
    TotalSpace.Caption := IntToStr(TotalNumberOfBytes)+' octets de capacité';
end;

end.

Conclusion :


Delphi c'est trop bien !

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.