Я предполагаю (надеюсь), что это что-то вроде экспериментов по юзабилити, а не гнусных целей.
Подход, который вы изложили, кажется разумным. Недостатки глобального перехвата:
- Это бремя для каждого процесса, так как ваш код хука будет внедрен в каждый процесс.
- Это может натолкнуться на барьеры безопасности. Например, если вы подключаетесь к приложению со средним уровнем целостности, я не думаю, что вы сможете подключить приложение с высоким уровнем целостности. Кроме того, вы по сути создаете кейлоггер, поэтому не удивляйтесь, если какое-нибудь антивирусное приложение помечает вас как шпионское ПО.
- Вам может потребоваться 64-битная версия и 32-битная версия.
Одним из способов смягчения воздействия, которое вы оказываете на машину, является использование более целенаправленной перехвата: найдите конкретный процесс, который вам нужен, перечислите его потоки и перехватите только те.
Spy ++, инструмент разработчика для отслеживания сообщений Windows, делает многое из того, что вы хотите, но я не уверен, что вы могли бы использовать его для своих целей. Я не знаю каких-либо других инструментов или платформ для такого рода инструментов.