首页  >  文章  >  后端开发  >  如何跨多个平台检测特定的Windows 10版本?

如何跨多个平台检测特定的Windows 10版本?

Linda Hamilton
Linda Hamilton原创
2024-11-05 10:17:02894浏览

How Can I Detect the Specific Windows 10 Version Across Multiple Platforms?

跨平台检测 Windows 10 版本

目标:

确定跨平台使用的 Windows 10 的特定版本-面向 Windows 7 及更高版本的平台代码库。

挑战:

Windows 提供了 IsWindows10OrGreater() 函数,但在旧版本的 Windows 中不可用,并且可能无法使用准确报告主要操作系统版本。

解决方案:

在跨版本兼容方法中利用 RtlGetVersion 函数:

<code class="c++">typedef LONG NTSTATUS, *PNTSTATUS;
#define STATUS_SUCCESS (0x00000000)

typedef NTSTATUS (WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);

RTL_OSVERSIONINFOW GetRealOSVersion() {
    HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll");
    ... (Module handle and function lookup code) ...
        RTL_OSVERSIONINFOW rovi = { 0 };
        rovi.dwOSVersionInfoSize = sizeof(rovi);
        if ( STATUS_SUCCESS == fxPtr(&amp;rovi) ) {
            return rovi;
        }
    ... (Error handling code) ...
}</code>

此函数即使没有清单,也能准确检索 Windows 10 上的真实操作系统版本。

替代方法:

为了提高兼容性和面向未来,请考虑指定功能要求而不是特定的操作系统版本。这可确保您的代码在具有不同功能的不同 Windows 版本中表现一致。

以上是如何跨多个平台检测特定的Windows 10版本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn