Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Процессы |
Автор: Sheff 10.12.2002, 01:42 |
Как в Win2000/NT зарегистрировать процесс как сервисный или отладочный ? Мне нужно сделать так, чтобы процесс нельзя было выгрузить. |
Автор: Klin 10.12.2002, 01:54 | ||
Не знаю, пойдёт ли в NT или в 2000, но 98 идёт.
Изчезает из процесов и нельзя завершить. |
Автор: Grey 10.12.2002, 02:09 |
Это не пойдет в 2000/NT. Для того чтоб сделать процесс сервисным, надо реализовать в нем несклько специальных функций см. RegisterServiceCtrlHandler |
Автор: Sheff 12.12.2002, 00:34 | ||
Дело в том, что мне надо заблокировать чужой процесс. |
Автор: Grey 12.12.2002, 01:27 |
Т.е. надо приостановить выплонение процесса, типа SuspendThread? |
Автор: Step 12.12.2002, 01:31 | ||
нет, ему надо сделать так чтоб чужой процесс нельзя было выгрузить, Шеф или я что-то не так понял |
Автор: Sheff 13.12.2002, 03:31 |
Step, ты всё правильно понял, мне нужно, чтобы процесс нормально пахал, но чтобы нельзя было его выгрузить. |
Автор: XpyDi 13.12.2002, 23:14 |
Запускай подопытный процесс функцией CreateProcess с установленным флагом DEBUG_PROCESS - для создания видимости отладки процесса, тогда пока происходит отладка процесс невозможно будет закрыть. А отладки на самом деле никакой не будет происходить, просто мы об этом только известим систему и всё. и DEBUG_ONLY_THIS_PROCESS - чтобы не отлаживать все процессы, которые породит наш "подопытный кролик". Плюсы: можно также отлаживать производить и реальную отладку процесса. Минусы: по-моему, если закрыть твой процесс, то и отлажываемый закроеться сразу же. Хотя свой процесс ты уже можешь написать его сервисным. |
Автор: Step 14.12.2002, 19:33 |
Шеф, я вот о чем подума, а ты не пробывал перехватывать все сообщения винды, до их попадания приложения, и обрабатывать сообщения твоим программам, как только пришло сообщения от системы для закрытия программы ты его блакируеш, а системы кидаеш сообщения что прога закрыта, или что то в этом роде. |
Автор: Step 14.12.2002, 19:42 | ||
я еще чучуть подумал. по всей видимости после такой махинации система прогу в качестве мусора попробует выкинуть. для решения этого вопроса поищи "бои в памяти" по поиску. |
Автор: Fantasist 15.12.2002, 07:01 | ||
Неужто? Помниться я сам (не раз) отлаживал программу и попросил виндос закрыть отлаживаемый процесс. В результате закрывается виндос. Виснит просто. Это Win98. |
Автор: Step 16.12.2002, 20:28 | ||||
ты по ошибке не ту прогу закрыл, ![]() ![]() ![]() |
Автор: XpyDi 17.12.2002, 02:40 | ||
Когда я писал я в первую очередь основывался на личном опыте в работе и в написании отладчиков, а также документации(MSDN). Хотя смотря какой отладчик, для Win98 все-таки частенько и сама виснит(основываясь на опыте своем, друзей и знакомых) |