Ver Mensaje Individual
  #1  
Antiguo 06-02-2006
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Reputación: 19
Jesús Pena Va por buen camino
Question Ayuda con Unidades

Estoy desarrollando una "cosilla" en la que muestro las unidades que tengo instaladas en mi ordenador y dependiendo del tipo muestro un icono u otro. El problema lo tengo en que no sé como diferenciar una unidad de cd con una de dvd y ¿como puedo saber que un disco está conectado a través de un puerto USB?. La rutina que tengo es esta
Código Delphi [-]
procedure TfrmInfoSys.GetDrivers;
var
  i ,j, nUnidad: integer;
  cRutaIni : String;
  DType : Integer;
  DriveString : String;
  tvNodo : TTreeNode;
begin
  GroupBox7.Height := 185;
  ProgressBar1.MinValue := 65;
  ProgressBar1.MaxValue := 90;
  TreeView1.Items.Clear;
  j := 0;
  for i:=65 to 90 do
  begin
    ProgressBar1.Progress := i;
    cRutaIni:= chr(i) + ':\';
    DType := GetDriveType(Pchar(cRutaIni));
    case DType of
         0               : DriveString := ' Disco No Reconocido';
         1               : DriveString := ' Sin Directorio Raiz';
         DRIVE_REMOVABLE : DriveString := ' Unidad de Diskette';
         DRIVE_FIXED     : DriveString := ' Unidad de Disco';
         DRIVE_REMOTE    : DriveString := ' Unidad de Red';
         DRIVE_CDROM     : DriveString := ' Unidad de CD-ROM';
         DRIVE_RAMDISK   : DriveString := ' Unidad de Disco RAM';
    end;
    if not ((DType = 0) or (DType = 1)) then
    begin
      tvNodo := TreeView1.Items.Add(nil,chr(i) + ': ' +DriveString) ; //(DriveString,ImageList1);
      with tvNodo do
      begin
        case DType of
             DRIVE_REMOVABLE : ImageIndex := 6;
             DRIVE_FIXED     : ImageIndex := 2;
             DRIVE_REMOTE    : ImageIndex := 1;
             DRIVE_CDROM     : ImageIndex := 4;
             DRIVE_RAMDISK   : ImageIndex := 0;
        end;
      end;
      inc(j);
      nUnidad := i - 64; {Corresponde al número de unidad}
      tvNodo.SelectedIndex := tvNodo.ImageIndex;
//      tvNodo.StateIndex := tvNodo.ImageIndex;
      GetDriveInfo(nUnidad,cRutaIni,tvNodo);
    end;
  end;
  TreeView1.AutoExpand := True;
  TreeView1.ShowButtons := True;
  TreeView1.FullCollapse;
  GroupBox7.Height := 157;
end;
Responder Con Cita