Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

Запрет закрытия чужого приложения через WinAPI   Найти похожие ветки 

 
Rassamaha78   (2010-07-06 07:43) [0]

Здравствуйте !
Есть цель: Создать алгоритм:
1. Из своей проги ловим момент попытки закрыть чужое приложение (есть хэндел, ID и т.д. этого приложения).
2. Не даем ему закрыться (без прерывания процесса чужого приложения)
3. Выполняем пару функций в своем приложении
4. Программно закрываем чужое приложение.

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

Варианты убрать "крестик" из окна приложения и т.д. не подходят, ибо приложение полноэкранное, и нужно остслеживать любую попытку его закрытия , будь то хоть Альт + Ф4, хоть завершение процесса через Диспетчер задач.


 
Riply ©   (2010-07-06 15:56) [1]

> 1. Из своей проги ловим момент попытки закрыть чужое приложение (есть хэндел, ID и т.д. этого приложения).
> 2. Не даем ему закрыться (без прерывания процесса чужого приложения)

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


 
SD Software   (2010-07-06 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 ©   (2010-07-06 23:28) [3]


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

и это не гарантия


 
Димка На   (2010-07-19 20:45) [4]

Да и процесс сам может просто завершиться, закончится код :)
имхо нужно точнее обозначить задачу , цель и причину.



Страницы: 1 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
2-1427929641
Drowsy
2015-04-02 02:07
2017.01.15
Как определить, установлены ли обновления RTL2, RTL3 на Дельфи 6?


15-1452558730
Сергей Суровцев
2016-01-12 03:32
2017.01.15
Appmethod слили


2-1423485605
lewka
2015-02-09 15:40
2017.01.15
Запрос в MS Access


6-1281776559
Симулятор
2010-08-14 13:02
2017.01.15
Как сделать симуляцию в индиевских серверах?


2-1420537491
Enzain
2015-01-06 12:44
2017.01.15
От какого пользователя запущено приложение.