Текст сообщения из GetMessageW или NtUserGetMessage - PullRequest
0 голосов
/ 18 октября 2011

У меня есть процесс, который порождается как фоновый процесс, который по какой-то причине вызывает окно сообщения в фоновом режиме. Так что процесс зависает, и я не могу получить сообщение.

Может кто-нибудь сказать мне, как я могу получить текст в этом сообщении через WinDbg или любым другим способом? Это родной процесс C ++ для x64 в Windows Server 2008 x64.

Вершина стека в "висячем" потоке (0):

00000000`0012fdc8 00000000`76ad9e9e USER32!NtUserGetMessage+0xa
00000000`0012fdd0 00000001`40bb2b04 USER32!GetMessageW+0x34
[..internal code...]
00000000`0012ff60 00000000`7707c521 kernel32!BaseThreadInitThunk+0xd
00000000`0012ff90 00000000`00000000 ntdll!RtlUserThreadStart+0x1d

Спасибо!

1 Ответ

5 голосов
/ 18 октября 2011

Это не отображение сообщения - это просто цикл приема / обработки / отправки сообщений Windows. Сообщение Windows является событием, таким как таймер или движение мыши. Итак, поток на самом деле не застрял, просто GetMessage блокирует, если в очередь сообщений этой темы не было отправлено сообщений.

...