获取 Windows 操作系统版本信息

C语言获取windows操作系统信息 欢迎转载,但转载时请注明本博客出处:http://blog.csdn.net/pingd/article/details/22396517,谢谢! 这里也只是一个功能函数而已,话不多说,直接上代码: //获取操作系统名字,如windows 7 //成功返回系统信息,失败返回NULL char *GetVersionInfo() { OSVERSIONINFO osvi; Z 阅读详情
// OSinfo.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include "winsock.h"
#include <string>
#include <iostream>
using std::cout;using std::string;using std::iostream;
using std::endl;using std::ios;using std::fstream;
using std::ofstream;using std::cin;
#pragma comment( lib, "Ws2_32.lib" )
#define MAX_VALUE_NAME   256

//char osinfo[MAX_PATH][MAX_PATH];
char patchname[MAX_VALUE_NAME];

//全局变量
char *LocalIP="";   //定义IP地址变量

//获取本机ip
bool GetLocalIp()
{
        WSADATA wsaData;
        char name[255];//定义用于存放获得的主机名的变量
        PHOSTENT hostinfo;
        //调用MAKEWORD()获得Winsock版本的正确值,用于加载Winsock库
        if ( WSAStartup( MAKEWORD(2,2), &wsaData ) == 0 )
        {
                //现在是加载Winsock库,如果WSAStartup()函数返回值为0,说明加载成功,程序可以继续
                if( gethostname ( name, sizeof(name)) == 0)
                {
                        //如果成功地将本地主机名存放入由name参数指定的缓冲区中
                        if((hostinfo = gethostbyname(name)) != NULL)
                        {
                                //这是获取主机名,如果获得主机名成功的话,将返回一个指针,指向hostinfo,hostinfo
                                //为PHOSTENT型的变量,下面即将用到这个结构体
                                LocalIP = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
                                //调用inet_ntoa()函数,将hostinfo结构变量中的h_addr_list转化为标准的点分表示的IP
                                //地址(如192.168.0.1)
                                // printf("the ip is:%s/n",LocalIP);//输出IP地址
                        }
                }
                WSACleanup( );//卸载Winsock库,并释放所有资源
               
        }
        return TRUE;
}

//显示系统版本
bool DisplaySystemVesion(FILE *fp)
{
        OSVERSIONINFOEX osvi;
        BOOL bOsVersionInfoEx;
        //利用OSVERSIONINFOEX结构调用GetVersionEx()函数
        //如果调用失败,可尝试使用OSVERSIONINFO结构
        ZeroMemory(&osvi,sizeof(OSVERSIONINFOEX));
        osvi.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);
        if(!(bOsVersionInfoEx=GetVersionEx((OSVERSIONINFO*)&osvi)))
        {
                //
                osvi.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
                if(!GetVersionEx((OSVERSIONINFO*)&osvi))
                        return FALSE;
        }
        switch(osvi.dwPlatformId)
        {
        case VER_PLATFORM_WIN32_NT:
                //get os information
                if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
                {
                        printf("Microsoft Windows Server 2003 family ");
                        //fprintf( fp, "Microsoft Windows Server 2003 family ");
                        fprintf( fp, "WindowsServer2003");
                        // strcpy(osinfo[0],"Microsoft Windows Server 2003 family ");
                }
               
                if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
                {
                        printf("Microsoft Windows XP ");
                &
一些VC++ 系统类通用类 可以在VC++中使用;非哥所作;哥整理并作说明; 1 弹出窗口类 CPopupTipWnd,封装了MFC CWnd类,创建窗口、显示窗口、隐藏窗口操作; #include "stdafx.h" #include "PwdSpy.h" #include "PopupTipWnd.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS... 阅读详情

相关推荐

操作系统版本信息检测工具使用指南

GetSystemVer.exe”是一个强大的操作系统版本信息查询工具,它能在不同的操作系统环境中运行,获取详尽的系统信息,并且展示给用户。程序由一款先进的脚本语言编写而成,具有简洁的用户界面,让用户即便没有深厚的IT背景也能够轻松使用。“GetSystemVer.exe”不仅提高了获取系统信息的效率,也优化了用户体验。通过学习本章,您应该能熟练掌握”GetSystemVer.exe”的基本使用方法和常见问题的解决方式,以确保在系统管理中得心应手。

weixin_35045970的博客 539

英飞凌TC3XX芯片---------CAN模块详解

CAN 总线是一种广泛应用于汽车、工业控制和其他领域的串行通信协议,CAN 英文名称:Controller Area Network。最初由德国的 Bosch 公司开发,用于汽车电子系统之间的通信。CAN 总线具有高可靠性、抗干扰能力强和实时性好等特点,因此被广泛应用于需要可靠数据传输的领域。CAN2.0B 协议中的 CAN 最多支持 29 位 ID,但是网络架构中使用的一般是 11 位的标准帧 ID。如下图是标准 CAN FD 帧数据结构:关于 CAN 协议相关内容,本文不作阐述。

sky的博客 3669

从零开始了解数据采集(五)——工业通信协议:数据采集的“语言”桥梁

数据采集常用的通信协议有哪一些?看完这篇你就了解了~

李恒的博客 4058

IC芯片验证 - 手把手教你搭建UVM验证环境

这是一个UVM的demo项目

howard789的博客 3万+

ptrade从零开始学习量化交易第166期【ptrade量化策略研究参考--三个因子挖掘思路】

三个因子挖掘思路

GJ57017_wx的博客 1248

图论:Dijkstra算法——最详细的分析,图文并茂,一次看懂!

Dijstra算法

普罗米修斯的博客 18万+

告别GIS软件!用R语言ggplot2+ggmapcn绘制出版级世界地图(附5种投影对比图)

本文提供了一份完整的实践指南,教你如何利用R语言及其强大的ggplot2生态系统,结合ggmapcn包,绘制出出版级的世界地图。文章详细对比了五种经典地图投影(如摩尔维德、罗宾森投影)的代码实现与视觉差异,并讲解了如何添加比例尺、指北针等专业元素,最终导出高清PDF,实现从数据分析到专业可视化的全流程代码化操作,彻底告别传统GIS软件。

p5l2m9n4o6q的博客 408

Proteus仿真实战:用AT89C51+L298N搭建直流电机PID调速系统(附完整工程文件)

本文详细介绍了使用Proteus仿真平台结合AT89C51单片机和L298N驱动模块搭建直流电机PID闭环调速系统的全过程。从硬件选型、电路连接到PID算法实现与参数整定,提供了完整的开发指南和工程文件,帮助读者快速掌握闭环调速系统的设计与调试技巧。

weixin_28724661的博客 449

SAP CPI 如何代理第三方接口?

代理接口是指在系统 A 和系统 B 之间引入一个中间层(如 SAP CPI),由中间层负责接收来自系统 A 的请求,进行必要的处理或转换,然后将请求转发给系统 B。由于 OData 服务通常使用 JSON 格式的数据,而某些内部系统可能需要 XML 格式,因此我们添加一个 JSON 到 XML 的转换器,以确保数据格式的兼容性。为了确保返回的数据格式符合内部系统的要求,添加一个 XML 到 JSON 的转换器,将 OData 服务的响应从 XML 转换为 JSON。在集成包中,添加一个新的集成流,命名为。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1748

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: A VB Script that checks registry for installed hotfix
下一篇: htran源代码
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值