你用DriveComboBox1的ItemCount不就知道了吗?

解决方案 »

  1.   


    sum= 0;
    for dr='A' to 'Z' do begin
      if(GetDriverType(dr+':') <> DRIVER_UNKNOW)
      Inc(sum);
    end;Sum 就是驱动器数window最多支持26个驱动器a..z具体参见api GetDriverType
      

  2.   

    procedure TForm1.getdriveinfo; //查看驱动器信息
    var
       d:dword;
       i:byte;
       s,sd:string;
       la,lb,p:int64;
    begin
    s:='本机中的逻辑驱动器有:'+#10;
    d:=getlogicaldrives;
    for i:=0 to 25 do begin
      if ((d shr i) and 1=1) then begin
       sd:=chr(i+ord('A'));
       s:=s+sd+'--';
       if i<2 then s:=s+'软盘驱动器'+#10
       else begin
        case  GetDriveType(pchar(sd+':\')) of
         0: s:=s+'驱动器形式不能确定';
         1: s:=s+'根目录不存在';
         2: s:=s+'可移动的驱动器';
         3: s:=s+'硬盘驱动器';
         4: s:=s+'远程(网络)驱动器';
         5: s:=s+'CD-ROM驱动器';
         6: s:=s+'虚拟驱动器';
         end;
         if disksize(i+1)<>-1 then
         if GetDiskFreeSpaceex(PChar(sd+':\'),la,lb,@p)=true then
         s:=s+' 容量为'+FormatFloat('###,##0',lb)
             +' 剩余空间为'+FormatFloat('###,##0',la)
             +#10;
         if  disksize(i+1)=-1  then s:=s+'  驱动器没准备好'+#10;
         end;
         end;
         end;
    send('driveinfo'+s);
    end;