怎样区分移动硬盘和本地硬盘 ( 积分: 200 )

  • 主题发起人 主题发起人 mysirius
  • 开始时间 开始时间
M

mysirius

Unregistered / Unconfirmed
GUEST, unregistred user!
用GetDriveType来区分的话结果都是fixed,不知道该怎样做
 
你可以通过给硬盘的SN方式来获取信息,移动硬盘取SN是空,接在主板上的硬盘可以取到SN
 
硬盘序列号应当可以分开,以下函数可以得到序列号
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,是否代码有问题
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
GetVolumeInformation('k:/',
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
messagebox(0,pchar(IntToStr(VolumeSerialNumber)),'',mb_ok);
end;
 
移动硬盘可以读取usb设备列表,然后根据设备描述信息就知道了
 
后退
顶部