• Jueves 2 de Mayo de 2024, 02:33

Autor Tema:  Re: delphi y win2000  (Leído 1865 veces)

carroba

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: delphi y win2000
« en: Miércoles 25 de Junio de 2003, 00:31 »
0
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:

lamierdalasole

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: delphi y win2000
« Respuesta #1 en: Domingo 29 de Junio de 2003, 14:17 »
0
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.

Leonel Antonio Feliz

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
delphi y win2000
« Respuesta #2 en: Martes 2 de Septiembre de 2003, 20:23 »
0
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
espero que con mi critica te puedas guiar
buena suerte....