Formatando Disquetes no Delphi

 

Esta dica mostra como formatar um disquete em uma aplicação Delphi. Bom para colocar na parte de utilitários de seu aplicativo. Ao invés do usuário ir no DOS ou no Explorer para formatar um disquete, ele irá formata-lo na própria aplicação. Não é o máximo?

Código

Declare as constantes mostradas abaixo imediatamente após a palavra implementation:

 

const     

  SHFMT_ID_DEFAULT = $FFFF;

  { Opções de formatação }

  SHFMT_OPT_QUICKFORMAT = $0000; { Formatação rápida }

  SHFMT_OPT_FULL = $0001; { Formatação completa }

  SHFMT_OPT_SYSONLY = $0002; { Copia sistema }

 

  { Códigos de errros }

  SHFMT_ERROR = $FFFFFFFF; { Ocorreu erro }

  SHFMT_CANCEL = $FFFFFFFE; { Foi cancelado }

  SHFMT_NOFORMAT = $FFFFFFFD; { Não formatou }

 

Crie a função mostrada abaixo após as constantes declaradas:

 

function SHFormatDrive(Handle: HWND; Drive, ID, Options: Word):LongInt; stdcall; external 'shell32.dll' name 'SHFormatDrive'

 

Coloque um botão no form e altere o evento OnClick dele conforme abaixo:

 

var

  Erro: DWord;

  Msg: string;

begin

  Erro := SHFormatDrive(Handle, 0, SHFMT_ID_DEFAULT, SHFMT_OPT_QUICKFORMAT);

  case Erro of

    SHFMT_ERROR: Msg := 'Ocorreu um erro.';

    SHFMT_CANCEL: Msg := 'A formatação foi cancelada.';

    SHFMT_NOFORMAT: Msg := 'Não foi possível formatar.';

  else

    Msg := 'Disco formatado com sucesso.';

  end;

  ShowMessage(Msg);

end;

 

Obs: Para formatação completa troque SHFMT_OPT_QUICKFORMAT por SHFMT_OPT_FULL. O segundo parâmetro (zero no exemplo) indica a unidade, sendo que A é 0 (zero), B é 1, etc.