C语言获取计算机系统参数

来源:互联网 发布:mac读取移动硬盘 编辑:程序博客网 时间:2024/06/07 03:13

了解一个系统相关信息也是一项比较重要的内容,这里简单的获取一些系统信息,主要获取的内容是系统的版本、操作系统的名字以及当前登陆的用户名。接下来先介绍一下相关的API函数。
获取操作系统版本:GetVersionEx();
      (该函数就一个参数,这个参数指向OSVERSIONINFO结构的指针。)
获取计算机名称:GetComputerName();
获取当前用户名:GetUserName();

以下代码正常情况下运行没有问题,如果有问题,请把输出里面的%s更改成%ls

//获取操作系统版本 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);
}