Функция
SetWindowsHookEx
принимает параметр HINSTANCE
. Документация поясняет, что это описатель DLL, содержащей процедуру ловушки. Зачем оконному менеджеру нужен этот описатель?Ему нужен описатель, чтобы узнать какую DLL нужно загружать в каждый процесс. Он будет внедрять DLL, которую вы укажете, а затем вызывать функцию, на которую вы указали. Очевидно, что эта функция должна находиться в DLL, которую вы указали, чтобы менеджер окон смог вызвать ваш код в другом процессе.
Вот почему код ловушки должен находится в DLL: вы не можете загрузить EXE внутрь другого EXE.
Ловушки
WH_KEYBOARD_LL
и WH_MOUSE_LL
являются исключениями для этого правила. Эти две ловушки не внедряются - как указано в описании их функций. Вместо этого ловушка вызывается в контексте оригинального потока.OK, вооружённые этой информацией, вы, вероятно, сможете решить проблему этого человека.
См. также.
Комментариев нет:
Отправить комментарий
Можно использовать некоторые HTML-теги, например:
<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>
Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.
Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.
Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.
Примечание. Отправлять комментарии могут только участники этого блога.