Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Comprobar si hay un disco/diskette/CD en una unidad de discos removibles - Delphi
Lenguaje de programación Borland Delphi


IsDiskIn
El truco es llamar a la API GetDiskFreeSpace y devolver su valor de retorno como boolean. La siguiente función toma la letra de la unidad que se recibe como parámetro (por ejemplo 'A', 'D', etc.) y devuelve True si hay un disco en la unidad, o False si no es así.

uses Windows;

var
  CaminoUnidad: array [0..3] of char = 'A:';

function IsDiskIn(unidad: char): boolean;
var
  d1, d2, d3, d4: longword;
begin
  CaminoUnidad[0] := unidad;
  Result := GetDiskFreeSpace(CaminoUnidad, d1, d2, d3, d4);
end;
En la implementación usamos una cadena terminada en nulo inicializada (CaminoUnidad) que contiene el directorio raíz de la unidad A: y sustituimos la letra de la unidad por la que se pasa como parámetro antes de llamar a GetDiskFreeSpace.

Llamada de ejemplo:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not IsDiskIn('A') then
    ShowMessage('La unidad A: no está lista');
end;




Publicado el: 2003-10-05

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A