-
Здравствуйте ! Есть цель: Создать алгоритм: 1. Из своей проги ловим момент попытки закрыть чужое приложение (есть хэндел, ID и т.д. этого приложения). 2. Не даем ему закрыться (без прерывания процесса чужого приложения) 3. Выполняем пару функций в своем приложении 4. Программно закрываем чужое приложение.
С пунктами 3,4 естесвтенно все понятно, интересует реализация 1-3 пунктов. Пытался реализовать через Хук, момент когда форма Дестроится ловить удается, но запретить закрытие не получилось. Думаю нужно делать через API , но опыта крайне мало ( Готов подкинуть немного ВМЗ за помощь в виде примера рабочего кода под Д7.
Варианты убрать "крестик" из окна приложения и т.д. не подходят, ибо приложение полноэкранное, и нужно остслеживать любую попытку его закрытия , будь то хоть Альт + Ф4, хоть завершение процесса через Диспетчер задач.
-
> 1. Из своей проги ловим момент попытки закрыть чужое приложение (есть хэндел, ID и т.д. этого приложения). > 2. Не даем ему закрыться (без прерывания процесса чужого приложения)
IMHO, из user-mode это практически нереально: 1. Перехвата только в целевом приложении (его могут и не информировать о закрытии) недостаточно. Надо перехватывать кучу ф-ий (типа NtTerminateProcess, NtTerminateThread и т.д. и т.п), считай, во всех процессах. 2. Даже если мы все это организуем, останутся и другие способы "уронить" подопытного, без использования этих ф-ий (например, внедрением в него кода с ошибкой)
-
-
> нужно писать драйвер для перехвата функций типа NtTerminateProcess
и это не гарантия
-
Да и процесс сам может просто завершиться, закончится код :) имхо нужно точнее обозначить задачу , цель и причину.
|