Lbl_DriveType:Tlabel;
  DriveType:WORD; //定义驱动器类型变量
  DriveType:=GetDriveType(RootPathName); //获得RootPathName所对应的磁盘驱动器信息
  case DriveType of
  DRIVE_REMOVABLE:Lbl_DriveType.Caption:= '软盘驱动器';
  DRIVE_FIXED : Lbl_DriveType.Caption:= '硬盘驱动器';
  DRIVE_REMOTE: Lbl_DriveType.Caption:= '网络驱动器';
  DRIVE_CDROM: Lbl_DriveType.Caption:= '光盘驱动器';
  DRIVE_RAMDISK: Lbl_DriveType.Caption:= '内存虚拟盘';
  end; //将该磁盘信息显示在Lbl_DriveType中

解决方案 »

  1.   

    function GetHDSerialNumber(Drv : String): String;
    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 := IntToHex(HiWord(VolumeSerialNumber), 4) +
                '-' +
                IntToHex(LoWord(VolumeSerialNumber), 4);
    end;
      

  2.   

    楼上这位老兄说得是逻辑盘序列号,我说得是物理序列号。标签上得那个。
    并不一定要大家解决这个问题,我可以调用VC写得DLL,只要谈谈想法就行了。
    难道有好多应用VC能做而DELPHI不能做到?
    DELPHI真得不如VC(指语言本身)。
    实现时到底有何难度?
      

  3.   

    真正的程序员用VC,聪明的程序员用DELPHI,
    每种程序语言都有自身的长处,也有自身的短处,看你怎么用,看你怎么取。
    单说硬盘序列号,DELPHI是能行的。
      

  4.   

    tanqth(青蛙):我没看到啊,都是讨论后没结果而不了了之了呀。
    莫非您有高见?