推断Windows版本号新方法
2023-09-11 14:20:42 时间
曾经在代码中推断用户的Windows操作系统版本号都是通过GetVersion或GetVersionEx获取版本号号,然后比較。
今天偶然发如今新的Visual Studio提供了新的函数来推断系统版本号,比直接调用API要方便得多。
为了使用新的函数。须要使用SDK 8.1。我用的VS2013。已经自带了。
Win7 x64 旗舰版执行效果:
今天偶然发如今新的Visual Studio提供了新的函数来推断系统版本号,比直接调用API要方便得多。
为了使用新的函数。须要使用SDK 8.1。我用的VS2013。已经自带了。
#include "stdafx.h" #include <iostream> #include <windows.h> // VersionHelpers.h 依赖于 windows.h #include <VersionHelpers.h> // Windows SDK 8.1 才有喔 using namespace std; int _tmain(int argc, _TCHAR* argv[]) { // 是否大于等于 XP if (IsWindowsXPOrGreater()) cout << ">= XP" << endl; else cout << " < XP" << endl; // 是否大于等于 XP SP1 if (IsWindowsXPSP1OrGreater()) cout << ">= XP SP1" << endl; else cout << " < XP SP1" << endl; // 是否大于等于 XP SP2 if (IsWindowsXPSP2OrGreater()) cout << ">= XP SP2" << endl; else cout << " < XP SP2" << endl; // 是否大于等于 XP SP3 if (IsWindowsXPSP3OrGreater()) cout << ">= XP SP3" << endl; else cout << " < XP SP3" << endl; // 是否大于等于 Vista if (IsWindowsVistaOrGreater()) cout << ">= Vista" << endl; else cout << " < Vista" << endl; // 是否大于等于 Vista SP1 if (IsWindowsVistaSP1OrGreater()) cout << ">= Vista SP1" << endl; else cout << " < Vista SP1" << endl; // 是否大于等于 Vista SP2 if (IsWindowsVistaSP1OrGreater()) cout << ">= Vista SP2" << endl; else cout << " < Vista SP2" << endl; // 是否大于等于 Win8 if (IsWindows8OrGreater()) cout << ">= Win8" << endl; else cout << " < Win8" << endl; // 是否大于等于 Win8.1 if (IsWindows8Point1OrGreater()) cout << ">= Win8.1" << endl; else cout << " < Win8.1" << endl; // 是否为server版 if (IsWindowsServer()) cout << "server版" << endl; else cout << "非server版" << endl; // 以上的函数都是通过IsWindowsVersionOrGreater实现的 // Windows 2000的版本为5.0,所以我们也能够直接通过版本推断 if (IsWindowsVersionOrGreater(5, 0, 0)) cout << ">= Win 2000" << endl; else cout << " < Win 2000" << endl; system("pause"); return 0; }
Win7 x64 旗舰版执行效果:
另外。假设将平台工具集选择为支持XP的话。就不能用上面的函数了,会提示找不到VersionHelper.h头文件。
相关文章
- Windows核心编程 第十二章 纤程
- [windows菜鸟]Windows API函数大全(完整)
- WinUSB: 在linux上创建一个Windows的可引导的U盘
- 通过Windows API 创建窗口的过程理解windows消息机制
- C# SendMessage用法(调用windows API)
- windows下启动某程序提示缺失**.dll文件的处理方法
- Windows最新版ELK日志分析系统搭建教程(附带便捷启动方案)
- 微软Windows 10 2015年表现回顾
- windows 获取用户的Sid的方法
- 转 Windows 7设置定时自动执行任务方法
- <Windows>《Edge浏览器使用方法大全》(持续更新......)
- 将java的jar包作为windows的服务来启动
- Windows Server查看和记录远程登录信息的方法
- windows默认共享的打开和关闭?
- windows远程桌面无法粘贴复制的问题解决方法
- Windows下phpStudy中的Apache无法启动的排查方法
- Windows服务器安全维护的几个要点
- 即使下降速率不高 Windows Phone市场前景仍不乐观
- Windows下Python中pip安装Pillow报错总结(转载)
- Windows操作系统下的MySQL主从复制及读写分离[转]
- #Windows server 2019将辅助域控升级为主域控
- LVGL 之 windows 上 lvgl 模拟器基于 Visual Studio 搭建方法的简单整理
- 【历史上的今天】11 月 10 日:初代 Windows 诞生;Word 之父出生;Go 语言发布
- 十个最佳方法保护Windows文件服务器
- Windows 2016 无域故障转移群集部署方法 超详细图文教程
- 使用 Cocos2d-x 3.1.1 创建 Windows Phone 8 游戏开发环境
- 悲剧!数据显示Windows 10商用占比仍不如XP数量
- 值得收藏的微软Windows系统蓝屏代码大全以及修复方法
- windows电脑截截屏截图的方法
- 微软称Windows 7安全架构已经过时