Форум: "WinAPI";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];
ВнизОтлов завершения програм. Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c