zoukankan      html  css  js  c++  java
  • C/C++ 获取系统版本

    获取版本代码:

    float getSysVersion(){
    
    	float f_ret;
    
    	typedef void(__stdcall*NTPROC)(DWORD*, DWORD*, DWORD*);
    	DWORD dwMajor, dwMinor, dwBuildNumber;
    	NTPROC proc = (NTPROC)GetProcAddress(
    		LoadLibrary("ntdll.dll"),
    		"RtlGetNtVersionNumbers"
    	); proc(&dwMajor, &dwMinor, &dwBuildNumber); 
    
    	// win 10
    	if (dwMajor == 10 && dwMinor == 0){
    		f_ret = dwMajor + dwMinor*0.1;
    		return f_ret;
    	}
    
    	// win 8.1
    	if (dwMajor == 6 && dwMinor == 3){
    		f_ret = dwMajor + dwMinor*0.1;
    		return f_ret;
    	}
    
    	// win 8.1 以下
    	SYSTEM_INFO info;
    	GetSystemInfo(&info);
    	OSVERSIONINFOEX os;
    	os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    	#pragma warning(disable:4996)
    	if(GetVersionEx((OSVERSIONINFO *)&os)){
    		f_ret = os.dwMajorVersion + os.dwMinorVersion*0.1;
    	}
    	
    	return f_ret;
    }
    

    效果图:

    获取 ReleaseId

    string get_systemReleaseId(){
    	
    	string releaseId = "";
    	HKEY hKey_return = NULL;
    	char keyValue[256];
        DWORD keySzType;
        DWORD keySize;
    
    	if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\",0,KEY_READ,&hKey_return)){
    		cout << "RegOpenKeyEx failed." << endl;
    		goto end;
    	}
    	
    	if(ERROR_SUCCESS != RegQueryValueEx(hKey_return,"ReleaseId",0,&keySzType,(LPBYTE)&keyValue,&keySize)){
    		cout << "RegQueryValueEx failed." << endl;
    		goto end;
    	}
    	
    	releaseId = keyValue;
    	
    end:
    	return releaseId;
    }
    


    版权声明: 本博客,文章与代码均为学习时整理的笔记,博客中除去明确标注有参考文献的文章,其他文章【均为原创】作品,转载请务必【添加出处】,您添加出处是我创作的动力!

    警告:如果您恶意转载本人文章,则您的整站文章,将会变为我的原创作品,请相互尊重!
  • 相关阅读:
    go test 下篇
    go test 上篇
    利用Docker Compose快速搭建本地测试环境
    phinx:php数据库迁移
    tp5 r3 一个简单的SQL语句调试实例
    TP开发小技巧
    优酷真实视频地址解析——2014年10月7日
    霍夫变换
    Google Earth影像数据破解之旅
    线程理论:(四)锁优化
  • 原文地址:https://www.cnblogs.com/LyShark/p/15019661.html
Copyright © 2011-2022 走看看