| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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, за это вас могут покарать как правами так и антивирусами. |