WerReportHang 函式 (errorrep.h)

在指定的視窗上起始「無回應」報告。

語法

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

參數

[in] hwndHungApp

未回應之視窗的控制碼。

[in, optional] pwzHungApplicationName

要顯示在 Hang Reporting UI 中的未回應應用程式名稱。 名稱限制為 128 個字元,包括 Null 結束字元。 如果 為 Null,WER 會嘗試從目標映射資源取得名稱。 如果無法從映射取得名稱,則會使用映射名稱。

傳回值

如果函式能夠在失敗時起始報告或錯誤碼,則傳回S_OK。 請注意,S_OK不一定表示「沒有回應」報告已成功完成,只表示它已起始。

備註

謹慎 應用程式不應該使用此 API 來報告來自最上層視窗的回應;Windows XP 和更新版本的所有最上層視窗預設皆可使用無回應偵測和報告。 您應該只使用此函式來報告子視窗沒有回應。 一般而言,只有在最上層視窗及其子視窗由不同進程擁有,而且子視窗中偵測到非回應時,才會使用此函式。
 
此函式會起始無回應報告,然後終止建立視窗的程式。 呼叫端負責判斷子視窗何時沒有回應,而且應該在回報非回應之前提示使用者同意。 偵測未回應之視窗的一般方式,就是及時檢查它是否回復視窗訊息。 您可以使用 SendMessageTimeout 函式來偵測此條件。

此函式是非同步;它不會等候無回應報告完成。 在啟動回應報告之後,沒有任何方法可以取消回應報告。

如果您使用此函式,請務必遵守下列需求:

  • 確定子視窗是由個別進程所建立。 在無回應報告完成之後,它會終止建立視窗的程式。
  • 在子視窗中提供未回應的視覺線索;無回應報告不會將子視窗變暗,它只會顯示報告對話方塊。
  • 確認使用者想要在呼叫此函式之前終止未回應的子視窗。
  • 為了讓沒有回應的報告 UI 出現在未回應的視窗前面,應用程式應該從最上層視窗的處理常式呼叫 AllowSetForegroundWindow (傳遞進程識別碼ASFW_ANY) 函式。

需求

   
最低支援的用戶端 具有 SP1 的 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 errorrep.h
程式庫 Faultrep.lib
Dll Faultrep.dll