Только поток, который создает окно, может напрямую получать и отправлять сообщения для этого окна. GetMessage()
извлекает сообщения из очереди сообщений вызывающего потока, поэтому его можно использовать только с windows, принадлежащим вызывающему потоку.
Поскольку вы пытаетесь перехватить сообщения для окна, которое не принадлежит вам , вам нужно будет использовать SetWindowsHookEx()
или SetWinEventHook()
, чтобы установить обратный вызов ловушки в поток-владелец этого окна, а затем этот обратный вызов может перехватить нужные сообщения / события для этого окна. , Вы можете использовать GetWindowThreadProcessId()
, чтобы получить идентификаторы Процесса и Нити, которым принадлежит окно.
Если вы используете SetWindowsHookEx()
и пытаетесь подключить окно в другом процессе, ваш обратный вызов должен находиться в DLL, чтобы его можно было внедрить в этот процесс. Вам не нужно делать это с SetWinEventHook()
.