![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из под Дельфи-программы отформатировать дискету? [D5]
FLIZ_ © (2002-08-19 15:49:00)прошу подсказать. спасибо!
FLIZ_ (2002-08-19 19:02:00) [1]кстати - константы быстрого и полного форматирования
перепутаны местами :)
FLIZ_ (2002-08-19 18:59:00) [2]СПАСИБО за код примера! Мне это подходит!
маленький вопрос :
не пойму - из какого модуля эта ф-ия берется?
что надо в Uses указать ?
в файле ShellAPI.PAS нет такой ф-ии : "ShFormatDrive"
или я очень сильно торможу - и ее там быть не должно
и надо ее самому как внешнюю подключать (как я и сделал)?
FLIZ_ (2002-08-19 18:47:00) [3]Да, хотелось бы поюзать некую ф-ию, которая
бы форматировала дискету, а мне возвращала
бы информацию о завершенном процессе.
т.е. никаких дополнительных диалогов и окон не надо.
на крайний случай конечно и с диалогами пойдет,
но я бы хотел без них.
сейчас попробую приведенный в ответе код,
посмотрю что он дает ...
спасибо!
-= Like =- (2002-08-19 18:42:00) [4]Если не ошибаюсь, эта функция вызывает диалог "Форматирование диска", а он хочет из своей программы форматировать. Или нет?
Yuri-7 (2002-08-19 16:06:00) [5]Из FAQ Delphi Вокруг да около.
------------------------------
Вопрос:
Форматирование диска в Win32
Ответ:
ShellAPI функция ShFormatDrive().
Пример:
const SHFMT_DRV_A = 0;
const SHFMT_DRV_B = 1;
const SHFMT_ID_DEFAULT = $FFFF;
const SHFMT_OPT_QUICKFORMAT = 0;
const SHFMT_OPT_FULLFORMAT = 1;
const SHFMT_OPT_SYSONLY = 2;
const SHFMT_ERROR = -1;
const SHFMT_CANCEL = -2;
const SHFMT_NOFORMAT = -3;
function SHFormatDrive(hWnd : HWND;
Drive : Word;
fmtID : Word;
Options : Word) : Longint
stdcall; external "Shell32.dll" name "SHFormatDrive";
procedure TForm1.Button1Click(Sender: TObject);
var
FmtRes : longint;
begin
try
FmtRes:= ShFormatDrive(Handle,
SHFMT_DRV_A,
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
end;
end;
AL2002 (2002-08-19 15:55:00) [6]function SHFormatDrive (Wnd: HWnd; Drive, Size, Options: Integer): Integer;