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 !
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.