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

Вниз

Отлов завершения програм.   Найти похожие ветки 

 
VovanM ©   (2002-03-11 18:01) [0]

Нужно зафиксировать время запуска и завершения любой програмЬІ (игрЬІ). Проблема в том чтоПрограма может запустить другой процес и завершить вЬІполнениє.


 
paul_shmakov ©   (2002-03-12 18:00) [1]

для решения этой задачи необходимо перехватывать обращения к функции CreateProcess.
про то, как перехватывать вызовы функций api очень много написано, в том числе и здесь. поэтому описывать это процесс не буду.
единственно, что хотелось бы заметить: функцию CreateProcess может вызвать не сам процесс, а, например, подгруженная в его адресное пространство dll или дочерний процесс.
выход из этой ситуации следующий: необходимо перехватывать вызовы не только к CreateProcess, но и к LoadLibrary. как только перехватили LoadLibrary (или CreateProcess), вызываем процедуру установки перехватчиков api функций в этой dll или дочернем процессе.

допустим, теперь вы перехватили все обращения к CreateProcess. в каждом перехватчике вызываем оригинальную функцию CreateProcess, а возвращенный ей идентификатор процесса каким-либо образом отправляем нашему процессу, который как раз и следит за временем запуска и завершения.
отправлять можно разными способами: через проецируемые в память файлы, посылкой сообщения WM_COPYDATA и т.п.

наше приложение следит за появлением этих данных. при появлении каждого нового идентификатора процесса, запоминаем время запуска. потом ждем завершения одного из процессов функцией WaitForMultipleObjects. как только завершился, запоминаем время завершения. и т.д.


 
paul_shmakov ©   (2002-03-12 18:51) [2]

кстати, перехватить на 100% все вызовы к CreateProcess из обычного приложения не получится. только драйвером.
здесь описано почему:
http://www.rsdn.ru/forum/message.asp?mid=21412#21412


 
Sasha9 ©   (2002-03-12 18:59) [3]

можно ещё хуком(Hook) перехватить сообщения WM_CAREATE, WM_CLOSE, WM_DESTROY


 
Raptor ©   (2002-03-12 22:14) [4]

2 Sasha9
Это относится только к окнам, а никак не к процессам.



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-39697
kpbIcoBOY
2002-04-26 23:07
2002.05.13
форму в BMP


6-39824
zondor
2002-03-01 12:05
2002.05.13
проблемы с Telnet


1-39691
Johnmen
2002-04-29 12:40
2002.05.13
TEdit и звуковые эффекты


4-39895
skywalker
2002-03-06 17:48
2002.05.13
И снова потоки...


1-39767
ice
2002-04-28 11:46
2002.05.13
Цвета (RGB Hex)