VC获得window操作系统版本号, 获取操作系统位数
原文链接: http://www.greensoftcode.net/techntxt/2014315195331643021849
#include <Windows.h>
include <stdio.h>
#include <tchar.h>
#include <conio.h>
#include "stdafx.h"
#include "osVersion.h"
#include "osVersionDlg.h"
void getOsVersion(char* szOSName)
{
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
OSVERSIONINFO osvi;//定义OSVERSIONINFO数据结构对象
memset(&osvi, 0, sizeof(OSVERSIONINFO));//开空间
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);//定义大小
GetVersionEx (&osvi);//获得版本信息
dwMajorVersion=osvi.dwMajorVersion;//主版本号
dwMinorVersion=osvi.dwMinorVersion;//副版本
dwBuildNumber=osvi.dwBuildNumber;//创建号
dwPlatformId=osvi.dwPlatformId;//ID号
char swVersion[10]={0};
sprintf(swVersion,"%d.%d",dwMajorVersion,dwMinorVersion);
// dwVesion=atoi(swVersion);
if (!strcmp(swVersion,"4.0")) strcpy( szOSName,"win95"); //win95
if (!strcmp(swVersion,"4.1")) strcpy( szOSName,"win98"); //win98
if (!strcmp(swVersion,"4.9")) strcpy( szOSName,"win_me"); // win_me
if (!strcmp(swVersion,"3.51")) strcpy( szOSName,"win_Nt_3_5"); //win_Nt_3_5
if (!strcmp(swVersion,"5.0")) strcpy( szOSName,"win2000"); //win2000
if (!strcmp(swVersion,"5.1")) strcpy( szOSName,"win_xp"); //win_xp
if (!strcmp(swVersion,"5.2")) strcpy( szOSName,"win2003"); // win2003
if (!strcmp(swVersion,"6.6")) strcpy(szOSName,"vista"); //vista
if (!strcmp(swVersion,"6.1")) strcpy( szOSName,"win7"); // win7
if (!strcmp(swVersion,"6.1")) strcpy( szOSName,"win8"); // win8
}
#define __in
#define __out
#define MS_PROCESSOR_ARCHITECTURE_IA64 6
#define MS_PROCESSOR_ARCHITECTURE_AMD64 9
// 安全的取得真实系统信息
VOID SafeGetNativeSystemInfo(__out LPSYSTEM_INFO lpSystemInfo)
{
if (NULL==lpSystemInfo) return;
typedef VOID (WINAPI *LPFN_GetNativeSystemInfo)(LPSYSTEM_INFO lpSystemInfo);
LPFN_GetNativeSystemInfo fnGetNativeSystemInfo = (LPFN_GetNativeSystemInfo)GetProcAddress( GetModuleHandle(_T("kernel32")), "GetNativeSystemInfo");;
if (NULL != fnGetNativeSystemInfo)
{
fnGetNativeSystemInfo(lpSystemInfo);
}
else
{
GetSystemInfo(lpSystemInfo);
}
}
// 获取操作系统位数
int GetSystemBits()
{
SYSTEM_INFO si;
SafeGetNativeSystemInfo(&si);
if (si.wProcessorArchitecture == MS_PROCESSOR_ARCHITECTURE_AMD64 ||
si.wProcessorArchitecture == MS_PROCESSOR_ARCHITECTURE_IA64 )
{
return 64;
}
return 32;
}
void COsVersionDlg::OnButton1()
{
// TODO: Add your control notification handler code here
char szOSVersion[40]={0};
getOsVersion(szOSVersion); //获得操作系统名称
int lzBit=GetSystemBits(); // 获取操作系统位数
}
VC获得window操作系统版本号, 获取操作系统位数的更多相关文章
- python开发_platform_获取操作系统详细信息工具
''' python中,platform模块给我们提供了很多方法去获取操作系统的信息 如: import platform platform.platform() #获取操作系统名称及版本号,'Win ...
- NTDLL未文档化函数RtlGetNtVersionNumbers获取操作系统版本
作为新手,对获取操作系统版本号好奇过,因为曾经假象过一个场景:自己的程序在windows xp环境下编译,在windows 2003, windows 7,windows 8是否需要提权或者兼容处理, ...
- 获取操作系统版本Asp.Net
/// <summary> /// 获取操作系统版本号 /// </summary> /// <returns></returns> public st ...
- 批量ssh登录,获取操作系统、CPU、内存、硬盘信息<shell>
说明:该脚本读取machine.txt文件中的机器名,然后批量ssh登录,获取每台机器的操作系统,CPU,内存,硬盘等信息. 使用方法:将文件保存为sh,chmod +x filename 为该sh文 ...
- Js获取操作系统版本 && 获得浏览器版本
//利用原生Js获取操作系统版本function getOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.plat ...
- C# 获取操作系统相关信息
1.获取操作系统版本(PC,PDA均支持) Environment.OSVersion 2.获取应用程序当前目录(PC支持) Environment.CurrentDirectory 3.列举本地硬盘 ...
- 根据UserAgent 获取操作系统名称
/// <summary> /// 根据 User Agent 获取操作系统名称 /// </summary> private sta ...
- .NET Core 获取操作系统各种信息
.NET Core 获取操作系统各种信息 一.前言 .NET Core 内置了一些API供我们获取操作系统.运行时.框架等信息.这些API不是很常用,所有有些小伙伴可能还不知道,这里做一些可能用到的获 ...
- C# 获取操作系统相关的信息
本文通过一个Demo,讲解如何通过C#获取操作系统相关的信息,如内存大小,CPU大小,机器名,环境变量等操作系统软件.硬件相关信息,仅供学习分享使用,如有不足之处,还请指正. 涉及知识点: Envir ...
随机推荐
- hdu 5326
Work Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- git简单运用
创建新仓库 创建新文件夹,打开,然后执行 git init 以创建新的 git 仓库. 检出仓库 执行如下命令以创建一个本地仓库的克隆版本: git clone /path/to/repository ...
- 移动立方体算法(Marching cubes algorithm)
百度百科: 医学图像三维重建的方法主要有两大类:一类是三维面绘制,另一类是三维体绘制.体绘制能够更真实地反映物体结构,但由于其运算量大,即使利用高性能的计算机也无法满足实际应用中交互操作的需要.因此, ...
- [Node.js]22. Level 4: Dependency
Add two dependencies to your package.json file, connect and underscore. You'll want to useconnect ve ...
- 拓展javascript内置函数
1.获取字符串字节数 //获取字符串字节数 //方法一 /* */ String.prototype.getBytesLength = function () { var length = 0; fo ...
- UVA 357 Let Me Count The Ways(全然背包)
UVA 357 Let Me Count The Ways(全然背包) http://uva.onlinejudge.org/index.php?option=com_onlinejudge& ...
- OpenWrt中wifidog的配置及各节点页面参数
修改/etc/wifidog.conf, 只需要修改文件的前半部分, 其他都保持默认 GatewayID default GatewayInterface br-lan GatewayAddress ...
- Android网络开发之基本介绍
Android平台浏览器采用WebKit引擎,名为ChormeLite,拥有强大扩展特性,每个开发者都可以编写自己的插件. 目前,Android平台有3种网络接口可以使用,分别是:java.net, ...
- 深入PHP内核之array_multisort
这个函数是我第一次看手册的时候,没看明白是怎么回事,所以有必要记录一下 用法 bool array_multisort ( array &$arr [, mixed $arg = SORT_A ...
- maven仓库介绍 牛人博客
http://juvenshun.iteye.com/blog/359256 查找jar包方法 http://juvenshun.iteye.com/blog/269094