Я знаю, что мне придется реализовать что-то, что будет поддерживать ловушку
Нет, это не проблема. Глобальный хук требует DLL с обратным вызовом. Эта DLL вставляется во все запущенные процессы. Он будет оставаться загруженным в процессе до тех пор, пока вы не вызовете UnHookWindowsHookEx () или процесс не завершится, в зависимости от того, что произойдет раньше.
Обратите внимание, что вы также можете подключить клавиатуру с помощью WH_KEYBOARD_LL. Это не глобальный хук, Windows переключит контекст в вашу программу и сделает обратный вызов. Его гораздо проще использовать, поскольку вам не нужен механизм IPC с внедренной DLL, который требуется для глобальной ловушки. Перехватчик низкого уровня остается активным до тех пор, пока вы не отсоединитесь, поток, которому принадлежит очередь сообщений, не прекратит работу или не завершит ваш процесс, в зависимости от того, что произойдет раньше.