Como formatar um disquete
como faço para formatar um disquete dentro do meu programa?
Luiz_aquino
Curtidas 0
Respostas
Reginaldo174
27/12/2004
Coloque o código abaixo imediatamente abaixo da 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 }
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: }
procedure TForm1.Button3Click(Sender: TObject);
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;
Observações: 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.
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 }
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: }
procedure TForm1.Button3Click(Sender: TObject);
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;
Observações: 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.
GOSTEI 0
Renato_sp
27/12/2004
Amigo, verificando os meus arquivos achei uma function que ja utilizei uma vez em um sistema que fiz, e acho que vai te ajudar...
Espero que te ajude...
Renato / SP
function SHFormatDrive(Handle: HWND; Drive, ID, Options: Word): LongInt; stdcall; external ´shell32.dll´ name ´SHFormatDrive´ procedure TForm1.Button1Click(Sender: TObject); var retCode: LongInt; begin retCode:= SHFormatDrive(Handle, 0, $FFFF, $0000 ); if retCode < 0 then ShowMessage(´Diskette não Formatado´); end;
Espero que te ajude...
Renato / SP
GOSTEI 0
Luiz_aquino
27/12/2004
crieri um arquivo de lote para formatar e executei esse arquivo, tbm da ou teria algum problema?
valeu!!!
valeu!!!
GOSTEI 0