Мне нужно внедрить dll в один или несколько внешних процессов, из которых я также хочу перехватывать события клавиатуры. Вот почему использование SetWindowsHookEx с WH_KEYBOARD выглядит простым способом достижения обеих целей за один шаг.
Теперь я действительно не хочу устанавливать глобальный хук, когда меня интересуют только несколько выбранных процессов, но хуки для Windows кажутся либо глобальными, либо только для потоков.
Теперь у меня вопрос, как мне правильно настроить общесистемный хук.
Полагаю, одним из способов было бы установить перехват основного потока целевого процесса из моего приложения, а затем сделать то же самое внутри моей библиотеки DLL_PROCESS_ATTACH для всех остальных запущенных потоков (плюс для DLL_THREAD_ATTACH для потоков, запущенных позже) ,
Но действительно ли это хороший способ? И, что более важно, нет ли более простых способов настройки перехватчиков всего процесса? Моя идея выглядит довольно громоздкой и уродливой, но я нигде не смог найти никакой информации о том, как это сделать.