Share via


WerReportHang-Funktion (errorrep.h)

Initiiert die Meldung "keine Antwort" für das angegebene Fenster.

Syntax

HRESULT WerReportHang(
  [in]           HWND   hwndHungApp,
  [in, optional] PCWSTR pwzHungApplicationName
);

Parameter

[in] hwndHungApp

Handle mit dem Fenster, das nicht reagiert.

[in, optional] pwzHungApplicationName

Der Name der nicht reagierenden Anwendung, die auf der Benutzeroberfläche "Hang Reporting" angezeigt werden soll. Der Name ist auf 128 Zeichen beschränkt, einschließlich des NULL-Abschlusszeichens . Bei NULL versucht WER, den Namen aus den Zielimageressourcen abzurufen. Wenn der Name nicht aus dem Image abgerufen werden kann, wird der Imagename verwendet.

Rückgabewert

Gibt S_OK zurück, wenn die Funktion die Berichterstellung oder einen Fehlercode bei einem Fehler initiieren konnte. Beachten Sie, dass S_OK nicht unbedingt bedeutet, dass die Meldung "keine Antwort" erfolgreich abgeschlossen wurde, nur dass sie initiiert wurde.

Hinweise

Vorsicht Anwendungen sollten diese API nicht verwenden, um keine Antwort von Fenstern der obersten Ebene zu melden. Erkennung und Berichterstellung ohne Antwort sind standardmäßig für alle Fenster der obersten Ebene unter Windows XP und höher verfügbar. Sie sollten diese Funktion nur verwenden, um keine Antwort von untergeordneten Fenstern zu melden. In der Regel verwenden Sie diese Funktion nur, wenn das Fenster auf oberster Ebene und seine untergeordneten Fenster verschiedenen Prozessen gehören und eine Nichtantwort in einem untergeordneten Fenster erkannt wird.
 
Diese Funktion initiiert die No-Response-Berichterstellung, die dann den Prozess beendet, der das Fenster erstellt hat. Der Aufrufer ist dafür verantwortlich, zu bestimmen, wann ein untergeordnetes Fenster nicht reagiert, und sollte den Benutzer zur Zustimmung auffordern, bevor er die Nichtantwort meldet. Eine typische Möglichkeit, ein Fenster zu erkennen, das nicht reagiert, besteht darin, zu überprüfen, ob es rechtzeitig auf Fensternachrichten antwortet. Sie können die SendMessageTimeout-Funktion verwenden, um diese Bedingung zu erkennen.

Diese Funktion ist asynchron; Es wartet nicht, bis die No-Response-Berichterstellung abgeschlossen ist. Es gibt keine Möglichkeit, die No-Response-Berichterstellung abzubrechen, nachdem sie gestartet wurde.

Wenn Sie diese Funktion verwenden, ist es wichtig, dass Sie die folgenden Anforderungen einhalten:

  • Stellen Sie sicher, dass untergeordnete Fenster durch einen separaten Prozess erstellt werden. Nachdem die No-Response-Berichterstellung abgeschlossen ist, wird der Prozess beendet, der das Fenster erstellt hat.
  • Geben Sie visuelle Hinweise im untergeordneten Fenster, dass es nicht reagiert. Die No-Response-Berichterstellung dimmt das untergeordnete Fenster nicht, es wird nur das Dialogfeld "Berichterstellung" angezeigt.
  • Vergewissern Sie sich, dass der Benutzer das untergeordnete Fenster beenden möchte, das nicht reagiert, bevor Sie diese Funktion aufrufen.
  • Damit die Benutzeroberfläche für die No-Response-Berichterstellung vor dem Fenster angezeigt wird, das nicht reagiert, sollte die Anwendung die Funktion AllowSetForegroundWindow (übergeben ASFW_ANY für den Prozessbezeichner) aus dem Prozess des Fensters der obersten Ebene aufrufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista mit SP1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile errorrep.h
Bibliothek Faultrep.lib
DLL Faultrep.dll