![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Defiline |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.7.2011 Репутация: нет Всего: нет |
Здрасте
Проблема: Дело вот какое привело меня сюда: Есть консольная утилита, исходных кодов которой я не имею. Её запускаем из своего приложения с помощью CreateProcess, она выполняет определенные операции в фоновом режиме длительное количество времени пока мы не захотим её закрыть. Всё работает замечательно до определенного момента, а именно: при завершении сеанса Windows эта утилита убивается напрочь, и все её рабочие данные теряются (если закрывать из приложения - всё сохраняется). Задача в том, чтобы корректно обработать закрытие при завершении сеанса; для этого я ловлю сообщение в своём приложении. Но! Утилита убивается операционной системой ДО того, как передается управление моему приложению. Вопрос: Возможно ли (и если да, то как) запустить дочернее приложение таким образом, чтобы Windows в первую очередь посылала сообщение моему приложению, которое корректно на него отреагирует, а не убивала сначала процесс, который я создаю, а потом уже передавала управление мне. |
|||
|
||||
| Defiline |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.7.2011 Репутация: нет Всего: нет |
Не люблю апать темы, но ограничение по времени заставляет это делать.
Сейчас рассматриваю как вариант создание сервиса, но не факт, что на компьютере кто-нибудь даст права адимнистратора. |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 1 Всего: 5 |
||||
|
||||
| Defiline |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.7.2011 Репутация: нет Всего: нет |
Получаю WM_QUERYENDSESSION. Но проблема не в том, чтобы его получить, а в том, что запускаемое моим приложение убивается раньше родительского, в результате мне с этим сообщением уже нечего делать. |
|||
|
||||
| bass |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Я бы похукал бы приложение, в нем бы подменил винпрок..... Ну а там воля ваша что делать с сообщением завершение виндовс.......... Только ваше приложение тоже не должно раньше завершиться а то хук тоже исчезнет..... Только для хука тоже права скорей админские потребуються шас не компитентен в этом вопросе....... Хотя если приложение в пользоательском режиме то может и получиться если на него ставить......... Это сообщение отредактировал(а) bass - 28.7.2011, 18:27 |
||||
|
|||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 1 Всего: 5 |
SetProcessShutdownParameters(0x3FF, 0x00000001);
должно помочь http://msdn.microsoft.com/en-us/library/ms...v=vs.85%29.aspx |
|||
|
||||
| Defiline |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.7.2011 Репутация: нет Всего: нет |
Ага, спасибо, проблему решил.
Тему пометил решенной. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |