![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
MadCoder |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Здравствуйте!
Мне жизненно необходимы функции запуска и завершения процесса дефрагментации (встроенной утилитой Defrag, которая находится в составе Windows XP). Если с запуском все понятно, то вот с завершением возникают проблемы. Я уже писал об этом здесь, но проблема не разрешилась к сожалению. Из-за того, что дефрагментация вещь достаточно капризная, ее нельзя просто килить, нужно отправлять системное сообщение на завершение. Ситуация осложняется тем, что defrag.exe запускает еще процессы DfrgFat и DfrgNtfs в зависимости от файловой системы. Их тоже необходимо корректно завершать. Далее пишу свой код. Запуск процесса дефрагментации:
Функция остановки:
И такой еще вопрос: я так понимаю, что запаузить дефрагментацию нельзя, только остановить? |
||||
|
|||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
а зачем работать с оболочкой?
копай в сторону WMI - Win32_Volume Class -------------------- There are always someone smarter than you... |
|||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Подскажи, как и где копать пожалуйста, почитаю ![]() |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
-------------------- There are always someone smarter than you... |
|||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Ничего не получается :(.
|
|||
|
||||
MadCoder |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Судя по документации, такой код невозможно будет преврать\остановить:
Это так? |
||||
|
|||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
прям таки ничего? ну хоть что-то получается? до объекта достучался?
может имеет смысл поискать(задать вопрос) на королевстве... -------------------- There are always someone smarter than you... |
|||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
![]() |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
я с WMI плотно не работал и пример пока делать некогда.
-------------------- There are always someone smarter than you... |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
для начала, TerminateProcess - не лучшее решение для остановки дефрагментатора: уж лучше не остановить, чем порушить файловую систему, не так ли? хотя опасаться в таком случае можно только за судьбу fat'а. но в твоем варианте и это не страшно, так как ты "убиваешь" только "запускалку"(defrag.exe), а dfrgfat/ntfs.exe, к счастью, таким образом не трогаешь.
в целом, код сносный, но я бы увеличил время ожидания завершения - 3 сек маловато. по вопросу приостановки:
hiew рулед. ![]() ps. Win32_Volume "начался" только в w2k3. ![]() |
|||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
dumb, спасибо большущее! Сейчас буду пробовать
![]() Добавлено через 9 минут и 35 секунд dumb, а есть ли подобная WM_COMMAND команда для остановки дефрагментации? И подходят ли эти команды также для DfrgNtfsClass? |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
|
|||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
Офигенно! Спасибо громадное, очень помог. А откуда такие сведения?
|
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
||||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
спасибо!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |