Я знаю, какой диск в формат, используя этот код:Как быстро отформатировать USB-накопитель в коде
function IsRemovableDrive(Drive: Char): Boolean;
begin
Result := (Winapi.Windows.GetDriveType(PChar(Drive + ':\')) = Winapi.Windows.Drive_Removable);
end;
Я попробовал этот код:
const
SHFMT_DRV_A = 0;
SHFMT_DRV_B = 1;
SHFMT_ID_DEFAULT = $FFFF;
SHFMT_OPT_QUICKFORMAT = 0;
SHFMT_OPT_FULLFORMAT = 1;
SHFMT_OPT_SYSONLY = 2;
SHFMT_ERROR = -1;
SHFMT_CANCEL = -2;
SHFMT_NOFORMAT = -3;
function SHFormatDrive(hWnd: HWND; Drive: Word; fmtID: Word; Options: Word): Longint stdcall; external 'Shell32.dll' Name 'SHFormatDrive';
procedure TForm2.btnFormatClick(Sender: TObject);
var
FmtRes: Longint;
cCharTemp : Char;
begin
try
cCharTemp := edtDrive.Text[1]; // edtDrive.Tex := 'E';
FmtRes := ShFormatDrive(Handle, Ord(cCharTemp), SHFMT_ID_DEFAULT, SHFMT_OPT_QUICKFORMAT);
case FmtRes of
SHFMT_ERROR: ShowMessage('Error formatting the drive');
SHFMT_CANCEL: ShowMessage('User canceled formatting the drive');
SHFMT_NOFORMAT: ShowMessage('No Format')
else
ShowMessage('Disk has been formatted!');
end;
except
ShowMessage('Error Occured!');
end;
end;
Когда я пытаюсь запустить код это он всегда говорит «Ошибка форматирования диска» Где я ошибся?
Что Google сказал вам до сих пор? –
Я пробовал эту ссылку, но ошибка: http://www.swissdelphicenter.ch/en/showcode.php?id=226 – Ago
Вы должны быть более конкретными и непосредственно в своем вопросе, а не позже в комментариях. Как это происходит? Где вы получаете сообщение об ошибке? Что происходит, в отличие от того, что должно произойти? Если вы получите сообщение об ошибке, какой текст сообщения об ошибке? –