SoloCodigo

Programación General => Delphi => Mensaje iniciado por: carroba en Miércoles 25 de Junio de 2003, 00:31

Título: Re: delphi y win2000
Publicado por: carroba en Miércoles 25 de Junio de 2003, 00:31
hola tengo una pregunta: debo hacer un programa en delphi que obtenga cada 10 minutos la el espacio en disco disponible, si este es mayor al 90% desplegar uin mensaje de aviso.
se que existe una funcion pero no me acuerdo como se llama....

porfa ayudenme.....

:ayuda:
Título: Re: delphi y win2000
Publicado por: lamierdalasole en Domingo 29 de Junio de 2003, 14:17
Hola.

Perdona, pero... no entiendo exactamente lo que preguntas. ¿ Como 'meterle' un temporizador para cada 10 minutos ? ¿ Como mirar el espacio disponible en una unidad/disco ?

Dani.
Título: delphi y win2000
Publicado por: Leonel Antonio Feliz en Martes 2 de Septiembre de 2003, 20:23
lo que debes hacer es un poco facil aunque se puede complicar un poco de acuerdo a tu desenvolvimiento lo que debes de hacer es crear una funcion por ejemplo:
function  espaciolibre( const Drive : Char ) : LongInt;
var
   lpRootPathName          : PChar; { address of root path }
   lpSectorsPerCluster     : DWORD; { address of sectors per cluster }
   lpBytesPerSector        : DWORD; { address of bytes per sector }
   lpNumberOfFreeClusters  : DWORD; { address of number of free clusters }
   lpTotalNumberOfClusters : DWORD; { address of total number of clusters }
begin
      lpRootPathName := PChar( Drive + ':' );
      if Windows.GetDiskFreeSpace( lpRootPathName,
                                   lpSectorsPerCluster,
                                   lpBytesPerSector,
                                   lpNumberOfFreeClusters,
                                   lpTotalNumberOfClusters ) then
         Result := lpNumberOfFreeClusters * lpBytesPerSector * lpSectorsPerCluster
      else
         Result := -1;
end;
 
 
 //esta funcion la realizamos para saber el espacio libre en disco
y luego la llamamos, igualandola a donde queremos que nos salga; ejemplo
 Label1.Caption:=IntToStr( espaciolibre('c') );
esta es la idea basica para resorvel tu problema aunque en tu caso debes de poner un temporizador para que cada diez minuto te tire un comentario sobre el disco. esta funcion solo te dira la cantidad de espacio libre es decir que debes de hacer un sub-programa que te haga el porciento de espacio libre en el disco por ejemplo si el disgo es de 20gb y tiene ocupado 10 gb lo que debes de hacer es una regla de tres 20gb--------100%
10gb------------X
X:=(10*100)/2=50%
y ya.
si todavia posees duda me puedes escribir a:
elcazador18@yahoo.com (http://mailto:elcazador18@yahoo.com)
espero que con mi critica te puedas guiar
buena suerte....