为什么在C盘和在D盘得到的系统盘序列号不一样?
源代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
cPath : array[0..255] of char;
sPath : string;
driver : string;
begin
if GetWindowsDirectory(cPath,256)<>0 then
begin
sPath:=cPath;
driver:=ExtractFileDrive(sPath);
end
else
raise Exception.Create('System Error!');
GetVolumeInformation(PChar(driver),nil,0,@VolumeSerialNumber,
MaximumComponentLength,FileSystemFlags,nil,0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4)+'-'+IntToHex(LoWord(VolumeSerialNumber),4);
Edit1.Text:=SerialNumber;
end;
为什么上面的程序在系统盘(例如:C盘)得到的是错误的,而把程序放到其他盘中,就可以得到正确的呢?