2011-08-10 5 views
3

私のプログラムが現在実行しているOSがWindowsエラー報告機能であるかどうか確認したいと思います。私はいくつかの種類のAPIを使ってこれをしたいと思います。現在実行中のOSがWindowsエラー報告機能を備えているかどうかをプログラムで判断する方法

Windowsエラー報告以降ビスタから導入されましたが、私のコードは、WES 7とWES 2009(Windowsの組み込みの標準)上で動作する、ので、私はちょうど 場合(OSTYPE ==ビスタ)

を確認することができません。

どうすればよいですか?ウルの助けと提案のための

どうもありがとう:)

+0

Windowsエラー報告のWindows XPで起動:http://en.wikipedia.org/wiki/Windows_Error_Reporting –

+0

それを無効にするために使用そのためのレジストリキーは、あります。 superuser.com –

+0

で確認してください。ありがとう:) – Mark

答えて

3

は単に「wer.dll」のためのLoadLibraryを行うことを試みます。成功すれば、あなたはWERを持っています。

BOOL IsWindowsErrorReportingAvailable() 
{ 
    BOOL fRet = FALSE; 

    HMODULE hMod = LoadLibrary("wer.dll"); 

    fRet = (hMod != NULL); 

    if (fRet) 
    { 
     // make sure the APIs from WER we want to use are available 
     fRet = (NULL != GetProcAddress(hMod, L"ReportFault")); 
    } 

    CloseHandle(hMod); 

    return fRet; 
} 
+0

ありがとう:)これは本当に役に立ちました:) – Mark