Конференция "WinAPI" » Запрет закрытия чужого приложения через WinAPI [D7, WinXP]
 
  • Rassamaha78 (06.07.10 07:43) [0]
    Здравствуйте !
    Есть цель: Создать алгоритм:
    1. Из своей проги ловим момент попытки закрыть чужое приложение (есть хэндел, ID и т.д. этого приложения).
    2. Не даем ему закрыться (без прерывания процесса чужого приложения)
    3. Выполняем пару функций в своем приложении
    4. Программно закрываем чужое приложение.

    С пунктами 3,4 естесвтенно все понятно, интересует реализация 1-3 пунктов.
    Пытался реализовать через Хук, момент когда форма Дестроится ловить удается, но запретить закрытие не получилось. Думаю нужно делать через API , но опыта крайне мало (
    Готов подкинуть немного ВМЗ за помощь в виде примера рабочего кода под Д7.

    Варианты убрать "крестик" из окна приложения и т.д. не подходят, ибо приложение полноэкранное, и нужно остслеживать любую попытку его закрытия , будь то хоть Альт + Ф4, хоть завершение процесса через Диспетчер задач.
  • Riply © (06.07.10 15:56) [1]
    > 1. Из своей проги ловим момент попытки закрыть чужое приложение (есть хэндел, ID и т.д. этого приложения).
    > 2. Не даем ему закрыться (без прерывания процесса чужого приложения)

    IMHO, из user-mode это практически нереально:
    1. Перехвата только в целевом приложении (его могут и не информировать о закрытии) недостаточно.
      Надо перехватывать кучу ф-ий (типа NtTerminateProcess, NtTerminateThread и т.д. и т.п), считай, во всех процессах.
    2. Даже если мы все это организуем, останутся и другие способы "уронить" подопытного,
      без использования этих ф-ий (например, внедрением в него кода с ошибкой)
  • SD Software (06.07.10 18:19) [2]

    > Rassamaha78   (06.07.10 07:43)


    Короче вывод такой, нужно писать драйвер для перехвата функций типа NtTerminateProcess и т.д. в kernel mode http://www.delphisources.ru/pages/sources/system/2009-year/process-protection.html или искать готовое решение которое стоит я думаю не меньше 1000 $
  • DVM © (06.07.10 23:28) [3]

    > нужно писать драйвер для перехвата функций типа NtTerminateProcess

    и это не гарантия
  • Димка На (19.07.10 20:45) [4]
    Да и процесс сам может просто завершиться, закончится код :)
    имхо нужно точнее обозначить задачу , цель и причину.
 
Конференция "WinAPI" » Запрет закрытия чужого приложения через WinAPI [D7, WinXP]
Есть новые Нет новых   [134431   +11][b:0][p:0]