Здравствуйте Аноним, Вы писали:
А>>>Мда-а-а, через хуки у меня все работает, НО (!) если прога нежелательная то я хочу остановить ее запуск. Убивать процесс можно, но есть вероятность появления мусора и т.д. и т.п.
А>>>Я-то хотел это зделать еще ДО запуска реального программы (типа как монитор касперского чтоли).
ДЧИ>>Что значит мусор ? Мусор появиться может только в том случае, если апппликация работала до запуска глобального хука. Да и то это фигня. Память освободится всеравно. А если в момент запуска аппликации ты ее прибьешь из Dll своей, то все путем будет. К этому моменту ничего еще не успеет инициализироваться.
А>Гм, а что тогда ловить ДО запуска инициализации ? Я пока ловлю создание окон. Cразу сообщение ???
А>Однако, пойду эксперименты ставить.
ДЧИ>>Игры и прочую дрянь можно прибивать как угодно. Аккуратно надо завершать студии, серверы и тд из за возможной потери данных.
А>Дык это понятно. Так и делаю, просто опасаюсь утечки, повисших ресурсов или еще чего.
А>Тут я еще не силен.
Утечек никаких не будет. Память освободится вместе с процессом. Прога получит управление после того, как загружатся все дллки. Поэтому здесь можно смело прибивать процесс. Если сделаешь чз реестр — будут и консольные прибиваться. Ключ реестра, в котором прописаны длл для обязательной загрузки в процессы :
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_Dlls — для 9х не работает.
ДЧИ>>А зачем при запуске прибивать ?
ДЧИ>>Лучше сканировать по таймеру процессы и ставить людей перед фактом в виде скриншотов.
ДЧИ>>И вести лог вредных запусков.
А>Хм, побочный эффект от программы мог быть запрещение запуска троянов например, или вирусов.
ДЧИ>>Хук, кстати, не внелряется в консольную прогу. Вдруг челы будут ADOM запускать ? Он то консольный
А>Это я знаю, — вот это и проблема небольшая у меня. IMHO это конечно можно искать перебором процессов которые к консольным относятся. Но если чел запускает ADOM, то я и исщу метод определять прогу до ее запуска. В то-то и перец весь. Должен-же быть метод, но боюсь что он не документирован просто, типа евента EVENT_RUN_PROGRAM или сообщения броадкастового всем, что вот в полку процессов прибыло.
Должна-ж система сама об этом знать
Хуки глобальные сильно загружают всю систему. Поэтому лучше их избегать. Лучше садиться на таймер и сканировать процессы.