| 
| 
 | Вопрос # 769/ вопрос открыт / | 
 |  Здравствуйте, господа эксперты! Как можно запустить форматирование и дефрагментацию диска? 
|  |   Вопрос задал: alone (статус: Посетитель)Вопрос отправлен: 20 июля 2007, 00:48
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Feniks Здравствуйте, Гадлевский Олег Вячеславович!Ну форматирование можно попробовать тупым запуском проги format использую функцию ShellExec, а дефрагментацию - использую ту же функцию  запустить маленький  дефрагментатор Contig. Он весит 65 кил и у него есть чудесная коммандная строка, к тому же он юзает на прямую API функции Винды.
 Качать тут http://www.microsoft.com/technet/sysinternals/FileAndDisk/Contig.mspx
 
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 20 июля 2007, 11:12
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 3; последнее сообщение — 2 августа 2007, 12:22; участников в обсуждении: 3. 
|   | Aleksey P. Kharitonov (статус: 3-ий класс), 20 июля 2007, 02:09 [#1]:Если из под Windows то с помощью функции ShellExecute (см. MSDN) |  
|   | Градов Ю.М. (статус: 8-ой класс), 21 июля 2007, 11:36 [#2]: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\';
 
 ...
 implementation
 ...
 
 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(\'Ошибка форматирования диска\');
 SHFMT_CANCEL :
 ShowMessage(\'Пользователь отменил форматирование диска\');
 SHFMT_NOFORMAT :
 ShowMessage(\'Не форматировать\')
 else
 ShowMessage(\'Диск отформатирован без проблем\');
 end;
 except
 end;
 end;
 |  
|   | Feniks (статус: Бакалавр), 2 августа 2007, 12:22 [#3]:Можно запустить внешнюю команду: 
 WinExec(PChar(\'rundll32 shell32,SHFormatDrive\'), SW_Show);
 "rundll32 shell32,SHFormatDrive" - Запустить окно форматирования дискеты (\'Format Disk (A)\')
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |