PDA

Ver la Versión Completa : Listar unidades disponibles con Filtro


MaMu
16-05-2007, 17:13:08
Como puedo hacer para listar en un ComboBox, todas las unidades de disco que tengo en mi compu, osea A:, C:, D:, etc.
Y ahora lo complicado, como puedo hacer para filtrar la lista de unidades, es decir, quiero listar todas las unidades de disco que no sean del disco rígido, ni C: ni ninguna otra asignada si es que hay particiones. Por ejemplo, solo quiero listar disketeras, unidades de CD, lector de memorias, etc.
Se como hacer para saber si hay un CD o Diskette en la unidad, pero hacer este filtro no se me ocurre como.

Alguna idea?

Saludos y Gracias

MaMu
16-05-2007, 17:46:43
Esto me servirá, si tengo conectado por USB un lector de memorias? Es lo unico que se me ocurrió en base a lo que anduve leyendo en el foro.


procedure GetDrivers;
var
i ,j, nUnidad: integer;
cRutaIni : String;
DType : Integer;
DriveString : String;
begin
j := 0;
for i:=65 to 90 do
begin
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;
//Filtro las unidades, use los string, pero lo puedo hacer segun el valor de Dtype, con integers
if (DriveString<>' Sin Directorio Raiz') and (DriveString<>' Unidad de Disco') and (DriveString<>' Unidad de Red')
then begin
Form1.Memo1.Lines.Add(cRutaIni+' '+DriveString);
end;
end;
end;


Nota: el lector de memorias, lo tengo fijo, no lo desconecto nunca.

Saludos y Gracias

cHackAll
16-05-2007, 21:51:30
Lo mismo que lo tuyo:

procedure GetDrives;
var Drive: Char;
begin
for Drive := 'A' to 'Z' do
begin
if GetDriveType(PChar(Drive + ':\')) in [DRIVE_REMOVABLE, DRIVE_CDROM, DRIVE_RAMDISK] then
Form1.Memo1.Lines.Add(Drive + ':');
end;
end;

No entiendo lo que quieres concretamente. tu mismo te respondiste!

MaMu
17-05-2007, 00:15:33
Jeje, es cierto. Pero mi duda, radica en si esto me sirve para las unidades del lector usb de memorias, de la camara de fotos, si me va a funcionar si problemas. Osea, que tipo de unidad seria, removible?

Saludos

seoane
17-05-2007, 00:35:25
Jeje, es cierto. Pero mi duda, radica en si esto me sirve para las unidades del lector usb de memorias, de la camara de fotos, si me va a funcionar si problemas. Osea, que tipo de unidad seria, removible?

Pues depende, no todos los dispositivos usb son "removibles". Aunque hablando de cámaras digitales y tarjetas de memoria, lo mas probable es que estén marcados como "removibles".