WerReportHang 函数 (errorrep.h)

在指定窗口上启动“无响应”报告。

语法

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

参数

[in] hwndHungApp

未响应窗口的句柄。

[in, optional] pwzHungApplicationName

挂起报告 UI 中显示的无响应应用程序的名称。 名称限制为 128 个字符,包括 NULL 终止符。 如果 为 NULL,则 WER 会尝试从目标映像资源获取名称。 如果无法从映像中获取名称,将使用映像名称。

返回值

如果函数能够在失败时启动报告或错误代码,则返回S_OK。 请注意,S_OK并不一定意味着“无响应”报告已成功完成,只是表示它已启动。

备注

谨慎 应用程序不应使用此 API 来报告来自顶级窗口的响应;默认情况下,无响应检测和报告适用于 Windows XP 及更高版本上的所有顶级窗口。 应仅使用此函数来报告子窗口的响应。 通常,仅当顶级窗口及其子窗口由不同的进程拥有,并且子窗口中检测到非响应时,才使用此函数。
 
此函数将启动无响应报告,然后终止创建窗口的进程。 调用方负责确定子窗口何时不响应,并且应在报告非响应之前提示用户同意。 检测未响应的窗口的典型方法是检查及时答复窗口消息。 可以使用 SendMessageTimeout 函数检测此情况。

此函数是异步的;它不会等待无响应报告完成。 启动无响应报告后,无法取消报告。

如果使用此函数,请务必遵守以下要求:

  • 确保子窗口由单独的进程创建。 完成无响应报告后,它将终止创建窗口的进程。
  • 在子窗口中提供无响应的视觉线索;无响应报告不会变暗子窗口,只会显示报告对话框。
  • 在调用此函数之前,确认用户想要终止未响应的子窗口。
  • 若要在未响应的窗口前面显示无响应报告 UI,应用程序应调用 AllowSetForegroundWindow , (从顶级窗口的进程中传递进程标识符) 函数的ASFW_ANY。

要求

   
最低受支持的客户端 Windows Vista SP1 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 errorrep.h
Library Faultrep.lib
DLL Faultrep.dll