如何以编程方式确定我们当前运行的操作系统是否支持 Windows 错误报告?

发布于 2024-11-29 00:19:36 字数 235 浏览 1 评论 0原文

我想确定我的程序当前运行的操作系统是否支持 Windows 错误报告。我想使用某种 API 来做到这一点。

Windows 错误报告是从 Vista 开始引入的,但我无法检查 if(osType == Vista)

因为,我的代码在 WES 7 和 WES 2009(Windows Embedded Standard)上运行。

有什么办法做到这一点吗?

非常感谢您的帮助和建议:)

I would like to determine if the OS that my program currently running on is Windows Error Reporting capable. I would like to do this using some kind of API.

Windows Error Reporting was introducing from Vista onwards, but I just can't check
if(osType == Vista)

because, my code runs on WES 7 and WES 2009 (Windows Embedded Standard).

Is there any way do this?

Thanks a lot for ur help and suggestions:)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

未央 2024-12-06 00:19:36

只需尝试为“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;
}

Just attempt to do a LoadLibrary for "wer.dll". If it succeeds, you have 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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文