WINAPI

windows通过c++获取操作系统主要分两种:

1. windows是8.1版本以下版本:获取操作系统可以通过windows提供的api中GetVersionEx函数来获取

2. windows是8.1版本及以上:获取操作系统主要通过RtlGetNtVersionNumbers法来获取

微软也有坑,如果用GetVersionEx获取版本号,则获取到的是6.2.9200

参考

http://blog.csdn.net/koxiaozi1988/article/details/77743813

http://blog.csdn.net/justfwd/article/details/44856277

以上方法网上能搜到的资料很多就不做讨论了,这里提供一张版本号对照表

注册表方法



位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

key: ProductName

采集到版本更为详细,如有不妥欢迎讨论

c++采集windows操作系统名称的更多相关文章

  1. Windows操作系统

    Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家 ...

  2. 深入解析Windows操作系统笔记——CH1概念和术语

    1.概念和工具 本章主要介绍Windows操作系统的关键概念和术语 1.概念和工具 1.1操作系统版本 1.2基础概念和术语 1.2.1Windows API 1.2.2 服务.函数和例程 1.2.3 ...

  3. 根据UserAgent 获取操作系统名称

    /// <summary>        /// 根据 User Agent 获取操作系统名称        /// </summary>        private sta ...

  4. windows进程/线程创建过程 --- windows操作系统学习

    有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...

  5. 内核对象 windows操作系统

    问题: 什么是内核对象? 答:内核对象实际上时由内核分配的一块内存,而且只能由内核来访问.它时一个数据结构,成员包含有关于该对象的信息.一些成员对于所有对象类型都是一样的,比如对象名称.安全描述.使用 ...

  6. zabbix_agentd客户端安装与配置(windows操作系统)

    zabbix_agentd客户端安装与配置(windows操作系统)   **********  客户端操作   **********  标注:监控zabbix_agentd客户端安装对象是win s ...

  7. Windows操作系统下搭建Git服务器和客户端。

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

  8. Kali Linux Web后门工具、Windows操作系统痕迹清除方法

    Kali Linux Web后门工具 Kali的web后门工具一共有四款,今天只介绍WebaCoo 首先介绍第一个WeBaCoo(Web Backdoor Cookie) WeBaCoo是一款隐蔽的脚 ...

  9. Windows 操作系统

    Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家 ...

随机推荐

  1. 软件测试必须掌握的linux命令大全

    测试工程师的四大基础技能:数据库.linux.网络协议.测试工具,不管是刚入门还是已经工作多年,这几个方向都是要掌握的.今天我们再讲一下测试工程师必须要掌握的linux命令. 测试工程师需要掌握lin ...

  2. 深入理解Java中的锁(二)

    locks包结构层次 Lock 接口 方法签名 描述 void lock(); 获取锁(不死不休) boolean tryLock(); 获取锁(浅尝辄止) boolean tryLock(long ...

  3. 2015.11.10 asn1学习笔记

    Openssl : OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. 在OpenSSL被曝出现严 ...

  4. java实现线程的两种方式

    要求:一个火车站,三个售票员卖出100张票 1.通过继承Thread类实现 实现思路:建立ThreadTest类继承Thread并建立三个线程卖100张票 public class ThreadTes ...

  5. 你真的熟练使用webpack吗?

    https://www.webpackjs.com/ 官网地址 当自己在简历中写着熟练使用webpack的时候,殊不知自己只是在vue脚手架,react脚手架的路上走着比较轻松而已. 当面试官问你这几 ...

  6. GoLang fsnotify 实现目录中日志文件大小监控

    需求: 需要监听一个目录中所有文件,当文件大小增加到一定阀值,则将文件清空. 需要引入第三方包:"github.com/howeyc/fsnotify" 代码如下: package ...

  7. django第二次 (转自刘江)

    除了我们前面说过的普通类型字段,Django还定义了一组关系类型字段,用来表示模型与模型之间的关系. 一.多对一(ForeignKey) 多对一的关系,通常被称为外键.外键字段类的定义如下: clas ...

  8. .NET Core 3.0之深入源码理解HttpClientFactory(二)

      写在前面 上一篇文章讨论了通过在ConfigureServices中调用services.AddHttpClient()方法,并基于此进一步探讨了DefaultHttpClientFactory是 ...

  9. 04-kubernetes网络通信

    目录 kubernetes网络通信 需要解决的问题 flannel Calico/Cannel kubernetes网络通信 需要解决的问题 同一个pod内部的不同容器间通信, local Pod间的 ...

  10. 在表格中添加text便加框

    private void createTableText(Table table) { TableEditor editor = new TableEditor(table); for (int i ...