这个得到硬盘序列号的自定义函数应该调用?(50分)

  • 主题发起人 主题发起人 supperwing
  • 开始时间 开始时间
S

supperwing

Unregistered / Unconfirmed
GUEST, unregistred user!
这是一个我在DFW找到的得到硬盘序列号的函数
function GetHDNumber(Drv : String): DWORD; //得到硬盘序列号
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
if Drv[Length(Drv)] =':' then Drv := Drv + '/';
GetVolumeInformation(pChar(Drv),
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
Result:= (VolumeSerialNumber);

end;

请问各位这个自定义函数应该调用?调用的语法是怎样?
我想在FORM1上建一个BUTTON和一个EDIT,单击BUTTON,EDIT.TEXT调用上面的函数
就会出现硬盘序列号!具体应该怎么写啊?请帮忙
 
这个简单
var
SerialNum : pdword;
a, b : dword;
Buffer : array [0..255] of char;
begin
if GetVolumeInformation('c:/', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then
Label1.Caption := IntToStr(SerialNum^);
end;
 
你上面这个函数读的逻辑盘的SN,
看这贴,读的是硬盘的物理SN
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1662237
 
var
SerialNum : dword;
a, b : dword;
Buffer : array [0..255] of char;
begin
if GetVolumeInformation('c:/', Buffer, SizeOf(Buffer), @SerialNum, a, b, nil, 0) then
Edit1.Text := IntToHex(SerialNum, 8);
end;
 
function GetHDNumber(Drv : String): DWORD; //得到硬盘序列号
var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:=inttostr(GetHDNumber('c'));
end;
function GetHDNumber(Drv : String): DWORD; //得到硬盘序列号
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
if Drv[Length(Drv)] =':' then Drv := Drv + '/';
GetVolumeInformation(pChar(Drv),
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
Result:= (VolumeSerialNumber);

end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
volumnumber:DWORD;
begin
volumnumber := GetHDNumber('C:');
Edit1.Text :=IntToHex(HiWord(VolumNumber), 4) +
'-' +
IntToHex(LoWord(VolumNumber), 4);

end;
 
多人接受答案了。
 
多人接受答案了。
 
多人接受答案了。
 
后退
顶部