C语言获取windows系统的相关信息

来源:互联网 发布:jquery获取form数据 编辑:程序博客网 时间:2024/05/20 19:50
今天说一下 了解一个系统相关信息也是一项比较重要的内容,强大的扫描软件Nmap在对目标主机进行扫描时,也能对目标主机的系统等信息进行识别。这里简单的获取一些系统信息,主要获取的内容是系统的版本、操作系统的名字以及当前登陆的用户名。接下来先介绍一下相关的API函数。
获取操作系统版本:GetVersionEx();
      (该函数就一个参数,这个参数指向OSVERSIONINFO结构的指针。)
获取计算机名称:GetComputerName();
获取当前用户名:GetUserName();

下面我们封装一个简单的函数来获取系统的这三个信息。代码如下:

//获取操作系统版本 GetVersionEx()函数//GetVersionEx()函数就一个参数,这个参数指向OSVERSIONINFO结构指针//获取计算机名称 GetComputerName()函数//获取当前用户名称 GetUserName()函数#include <windows.h>#include <stdio.h>void GetSysInfo();int main(void){        GetSysInfo();        return 0;}void GetSysInfo(){        char szComputerName[MAXBYTE] = { 0 };        char szUserName[MAXBYTE] = { 0 };        unsigned long nSize = MAXBYTE;        OSVERSIONINFO OsVer;        OsVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);        GetVersionEx(&OsVer);        if( OsVer.dwPlatformId == VER_PLATFORM_WIN32_NT )        {                if( OsVer.dwMajorVersion == 5 )                {                        switch ( OsVer.dwMinorVersion )                        {                                case 0:                                        printf("Windows 2000\r\n");                                        break;                                case 1:                                        printf("Windows XP %s \r\n", OsVer.szCSDVersion);                                        break;                                case 2:                                        printf("Windows 2003 or Windows 2003 R2\r\n");                                        break;                                default:                                        printf("Other System \r\n");                        }                }                else if ( OsVer.dwMajorVersion == 6 )                {                        switch(OsVer.dwMinorVersion)                        {                                case 0:                                        printf("Windows Vista\r\n");                                        break;                                case 1:                                        printf("Windows 7 \r\n");                                        break;                                case 2:                                        printf("Windows 8 \r\n");                                        break;                                case 3:                                        printf("Windows 8.1 \r\n");                                        break;                                default:                                        printf("Other System \r\n");                        }                }                else if ( OsVer.dwMajorVersion == 10 )                {                        switch ( OsVer.dwMinorVersion )                        {                                case 0:                                        printf("Windows 10 \r\n");                                        break;                                default:                                        printf("Other System \r\n");                        }                }                else                {                        printf("Sorry. Unknown System! \r\n");                }        }/*        else        {                printf("Sorry. Unknown System! \r\n");        }*/        GetComputerName(szComputerName, &nSize);        printf("Computer Name is %s \r\n", szComputerName);        nSize = MAXBYTE;        GetUserName(szUserName, &nSize);        printf("User Name is %s \r\n", szUserName);}

已经测试过,可以编译的
我编译环境是在VC++6.0

1 0