次の方法で共有


WerReportHang 関数 (errorrep.h)

指定したウィンドウで "応答なし" レポートを開始します。

構文

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

パラメーター

[in] hwndHungApp

応答していないウィンドウを処理します。

[in, optional] pwzHungApplicationName

ハング レポート UI に表示される応答しないアプリケーションの名前。 名前は、 NULL 終端記号を含む 128 文字に制限されます。 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