Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft Ihnen, das Problem zu beheben, wenn eine Anwendung, die eigene Nachrichtenfilter verwendet, nicht mehr reagiert in Windows 10.
Gilt für: Windows 10, Version 2004, Windows 10, Version 20H2, Windows 10, Version 21H1, Windows 10, Version 21H2
Symptome
Berücksichtigen Sie das Szenario, in dem Sie eine Anwendung unter Windows 10, Version 2004/20H2/21H1/21H2 ausführen, und Ihre Anwendung verwendet Nachrichtenfilter. In diesem Szenario reagiert die Anwendung möglicherweise nicht mehr.
Hinweis
Dieses Problem wird in Windows 11 nicht beobachtet.
Ursache
Windows 10 fügt Windows-Nachrichten hinzu, die von Texteingabesystemen oder Text services Framework (TSF) verwendet werden.
Hinweis
Windows 10, Version 2004, hat die neue Version von TSF eingeführt.
Wenn der Nachrichtenfilter der Anwendung Fenstermeldungen mithilfe PeekMessage
der API oder GetMessage
API entfernt und keine Nachrichten an DispatchMessage
die API übergibt, kann TSF die Verarbeitung der Nachrichten nicht abschließen, und die Anwendung reagiert möglicherweise nicht mehr.
Dieses Problem kann auftreten, wenn die Anwendung den Nachrichtenfilter aufweist, der dem folgenden Beispiel ähnelt, wodurch nur Nachrichten verteilt WM_LBUTTONUP
und andere Nachrichten entfernt werden.
while(::PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&msg);
// Dispatch only specific messages.
if (msg.message == WM_LBUTTONUP) {
::DispatchMessage(&msg);
}
}
Problemumgehung 1
Ändern Sie den Nachrichtenfilter so, dass nur die erforderlichen Nachrichten gefiltert und andere Nachrichten über DispatchMessage
die API verteilt werden.
while(::PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&msg);
if (msg.message == WM_LBUTTONDOWN) {
}
else {
// Dispatches all non-filtered messages
::DispatchMessage(&msg);
}
}
Problemumgehung 2
Aktivieren Sie den Kompatibilitätsmodus des Microsoft IME (Eingabemethoden-Editors), wenn Sie den neuen Microsoft IME in Windows 10 verwenden.
Weitere Informationen zur Verwendung einer früheren Version von Microsoft IME finden Sie unter "Zurücksetzen auf eine frühere Version eines IME (Eingabemethoden-Editor)".
Hinweis
Es wird empfohlen, die IME-Kompatibilitätseinstellung als temporäre Problemumgehung zu verwenden.