Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Перехватить закрытие окна через Task Manager |
Автор: Solomon 31.3.2010, 11:55 |
Всем, привет Передо мной стала задача. При закрытии окна открывать ссылку в браузере. Так вот среди прочих закрытий необходимо так же учесть возможность закрытия преложения через Task Manager. Может кто то сталкивался с данной проблемой. Возможно ли вообще перехватить данное событие? Как то никогда данным вопросом не интересовался. В гугле тоже ничего толкового не нашел. Платформа WindowsOS. |
Автор: GoldFinch 31.3.2010, 13:13 |
создай еще 1 процесс, и следи из него за первым |
Автор: borisbn 31.3.2010, 13:47 |
или сделай так, чтобы твоего процесса http://www.google.ru/search?client=opera&rls=ru&q=%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8C+%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B8%D0%B7+%D0%B4%D0%B8%D1%81%D0%BF%D0%B5%D1%82%D1%87%D0%B5%D1%80%D0%B0+%D0%B7%D0%B0%D0%B4%D0%B0%D1%87&sourceid=opera&ie=utf-8&oe=utf-8 |
Автор: Solomon 31.3.2010, 14:46 |
borisbn, не вариант... игроки будут недовольны) GoldFinch, тоже неочень хороший вариант плодить кучу процессов |
Автор: jonie 31.3.2010, 14:47 |
вообще перед убийством система пытается завершить приложение законным методом, если я не ошибаюсь... посмотрите на оконные сообщения в момент убийства |
Автор: borisbn 31.3.2010, 15:27 |
это я первое, что попробывал Spy++ - нету :( |
Автор: qwert8734 31.3.2010, 15:34 |
на сколько я помню, через ключ в реестре можно к каждому запускаемому приложению подцепить dll. не уверен, но можно попробовать вызвать ShellExecute при отгрузке dll кстати, приложение свое и его можно править или надо цепляться к чужому процессу? |
Автор: jonie 31.3.2010, 17:20 |
ну проще всего получается запустить еще одну копию себя, сделав предварительно мьютекс какой, его и использовать как "точку ожидания"... |
Автор: qwert8734 31.3.2010, 18:10 |
может и проще, если исходник есть. тут уж слово за вопрошающим, он такую информацию не дал PS с таск-манагером точно пройдет, так как сам видел вирусы, которые не убивались через него, явно запускали копию себя и появлялись заново, а вот FAR убивал насмерть. если есть подозрение, что процесс могут убить фаром, то решение будет сложнее |
Автор: borisbn 31.3.2010, 18:19 | ||
"отгрузка" dll при снятии через диспетчер не производится. проверил:
файл DLL_PROCESS_DETACH.txt не создаётся при снятии из диспетчера. к другому - это совсем просто: каждую секунду проверяешь http://msdn.microsoft.com/en-us/library/aa911386.aspx jonie, вариант - супер !!! |
Автор: bra1ny 31.3.2010, 21:32 |
NtTerminateProcess перехватить. |
Автор: jonie 31.3.2010, 23:13 |
bra1ny, за это вас могут покарать как правами так и антивирусами. |