1
2 unit Unit1;
3
4 interface
5
6 uses
7 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
8 Dialogs, StdCtrls;
9
10 type
11 TForm1 = class(TForm)
12 Button2: TButton;
13 procedure Button2Click(Sender: TObject);
14 private
15 { Private declarations }
16 public
17 function GetHardDiskSerial(const DriveLetter: Char): string;
18 { Public declarations }
19 end;
20
21 var
22 Form1: TForm1;
23
24 implementation
25
26 {$R *.dfm}
27
28 function TForm1.GetHardDiskSerial(const DriveLetter: Char): string;
29 var
30 NotUsed: DWORD;
31 VolumeFlags: DWORD;
32 VolumeInfo: array[0..MAX_PATH] of Char;
33 VolumeSerialNumber: DWORD;
34 begin
35 GetVolumeInformation(PChar(DriveLetter + ':\'),
36 VolumeInfo, SizeOf(VolumeInfo), @VolumeSerialNumber, NotUsed,
37 VolumeFlags, nil, 0);
38 Result := Format('Label = %s Volume Serial = %8.8X', [VolumeInfo,
39 VolumeSerialNumber])
40 end;
41
42 procedure TForm1.Button2Click(Sender: TObject);
43 begin
44 ShowMessage(GetHardDiskSerial('c'));
45 end;
46
47 end.
|