Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 14-02-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Con el permiso de rruz, que tiene razón con su respuesta, aquí puedes encontrar como usar esa función:

http://www.clubdelphi.com/foros/show...99&postcount=9

O para ser mas precisos la cosa quedaría algo así:
Código Delphi [-]
type
  DISK_GEOMETRY = record
    Cylinders: int64;
    MediaType: Integer;
    TracksPerCylinder: DWORD;
    SectorsPerTrack: DWORD;
    BytesPerSector: DWORD;
  end;

const
  IOCTL_DISK_GET_DRIVE_GEOMETRY = 458752;

function GetDiskSize(Drive: Integer): int64;
var
  hDisk: THandle;
  Geometry: DISK_GEOMETRY;
  Returned: DWORD;
begin
  Result:= -1;
  hDisk:= CreateFile(PChar('\\.\Physicaldrive' + IntToStr(Drive)),GENERIC_READ,
    FILE_SHARE_READ,nil,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);
  if hDisk <> INVALID_HANDLE_VALUE then
  begin
    FillChar(Geometry,Sizeof(Geometry),0);
    if DeviceIoControl(hDisk,IOCTL_DISK_GET_DRIVE_GEOMETRY,nil,0,@Geometry,
      sizeof(Geometry),Returned,nil) then
      with Geometry do
        Result:= Cylinders*TracksPerCylinder*SectorsPerTrack*BytesPerSector;
    CloseHandle(hDisk);
  end;
end;


// Por ejemplo
ShowMessage(IntToStr(GetDiskSize(0)));

O si queremos un listado completo:
Código Delphi [-]
var
  i: integer;
  Str: String;
  Size: int64;
begin
  Str:= '';
  for i:= 0 to 16 do  // Comprobamos un numero razonable de discos
  begin
    Size:= GetDiskSize(i);
    if Size > 0 then
      Str:= Format('Disco %d = %d Bytes' + #13#10,[i,Size]);
  end;
  ShowMessage(Str);
end;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Serial del disco duro Emerson API de Windows 10 12-07-2006 07:44:30
como instalar kylix 3 en Knoppix en disco duro (tipo debian) para que ande bien Robert01 Lazarus, FreePascal, Kylix, etc. 4 27-06-2006 03:29:44
Disco duro malo?? danytorres Varios 1 31-01-2005 17:29:19
Particionar disco duro para instalar linux DarkByte Linux 15 14-02-2004 23:51:47
datos del disco duro seduerey Varios 2 01-07-2003 22:13:09


La franja horaria es GMT +2. Ahora son las 21:01:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi