如何通过编程确定当前运行的操作系统是否支持Windows错误报告?

3
我想确定我的程序当前运行的操作系统是否支持 Windows 错误报告。我想使用某种 API 来实现这一点。
自 Vista 起,Windows 错误报告已经被引入,但我无法仅通过检查 if(osType == Vista) 来判断。
因为我的代码在 WES 7 和 WES 2009 (Windows 嵌入式标准版) 上运行。
有没有办法做到这一点呢?
非常感谢您的帮助和建议 :)

Windows错误报告从Windows XP开始启动。:http://zh.wikipedia.org/wiki/Windows_Error_Reporting - user195488
有一个注册表键可以用来禁用它。请在superuser.com上询问。 - Hans Passant
看起来我可以从注册表中禁用服务,但我想知道该服务是否正在运行或受支持。我该如何实现这一点? - Mark
1个回答

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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接