为什么两次获取的硬盘序列号会不一样,请高手帮忙procedure TForm1.BitBtn1Click(Sender: TObject);
var
SerialNum : LPDWord;
a, b : dword;
Buffer : array [0..25555] of char;
begin
GetVolumeInformation(PChar('c:\\'), Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0);
Edit1.Text:=IntToHex(SerialNum^,8); //结果为:8AD88B53
end;
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber:DWORD;//磁盘序列号
MaximumComponentLength:DWORD;
lpFileSystemNameBuffer:LPTSTR ;
nFileSystemNameSize:DWORD;
FileSystemFlags:DWORD;
begin
GetVolumeInformation(PChar('c:\'),nil,0,@VolumeSerialNumber,MaximumComponentLength,FileSystemFlags,nil,0);
Edit2.Text:=inttohex((VolumeSerialNumber),8); // 结果为: 251A1101
end;
var
SerialNum : LPDWord;
a, b : dword;
Buffer : array [0..25555] of char;
begin
GetVolumeInformation(PChar('c:\\'), Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0);
Edit1.Text:=IntToHex(SerialNum^,8); //结果为:8AD88B53
end;
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber:DWORD;//磁盘序列号
MaximumComponentLength:DWORD;
lpFileSystemNameBuffer:LPTSTR ;
nFileSystemNameSize:DWORD;
FileSystemFlags:DWORD;
begin
GetVolumeInformation(PChar('c:\'),nil,0,@VolumeSerialNumber,MaximumComponentLength,FileSystemFlags,nil,0);
Edit2.Text:=inttohex((VolumeSerialNumber),8); // 结果为: 251A1101
end;
GetVolumeInformation('C:\', nil, 0, @dwVolumeSerialNumber,
dwMaximumComponentLength, dwFileSystemFlags, nil, 255);
strValue := IntToHex(dwVolumeSerialNumber, 8);我就是这么调用的,且不要使用 'C:\\',而是应该使用 'C:\' 或 'C:' 即可。
SerialNum : LPDWord;//指针不可结帐算了