With this simple function, you will be able to get volume serial number and label. It could be either hard disk partition or CD/DVD disk.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetHardDiskSerial(const DriveLetter: char): string;
var NotUsed, VolumeFlags, VolumeSerialNumber: dWord;
VolumeInfo: array[0..MAX_PATH] of char;
begin
GetVolumeInformation(PChar(DriveLetter + ':'), VolumeInfo, SizeOf(VolumeInfo), @VolumeSerialNumber, NotUsed, VolumeFlags, nil, 0);
Result := Format('Label = %s VolSer = %8.8X', [VolumeInfo, VolumeSerialNumber]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetHardDiskSerial('c'));
end;
end.