|
Вопрос # 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)\')
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|