Форум: "Система";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
ВнизLovushka Найти похожие ветки
← →
Юрий Зотов (2001-06-24 01:36) [13]Ну, значит, все правильно и этот код можно рекомендовать, как пример глобального хука. Благодарю за обсуждение.
Но для того, чтобы превратить этот пример в нормальную программу, в него нужно добавить блокировку повторной установки хука, если юзер повторно запускает саму программу. Сделать это несложно.
1. В функции входа в DLL надо после вызова CreateFileMapping проверить результат и, если проекция действительно создана, а не открыта, то после вызова MapViewOfFile обнулить 8 байт (или 4 байта) по адресу PData.
2. Соответственно, в SetShellHook надо проверить не только PData <> nil, но еще и содержимое по этому адресу. И ставить хук только в том случае, если это содержимое - ноль.
Это все. Считаю, что на многочисленные поступившие ко мне письма по поводу Shell Hooks я ответил. Тем более, что продублировал ответы по e-mail.
Только странно - что это вдруг все бросились ловить запуск программ? Да еще таким странным способом - через таскбар. А если программа вообще не создает никаких окон, в том числе и на таскбаре?
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c