瞭解一個系統相關信息也是一項比較重要的內容,這裏簡單的獲取一些系統信息,主要獲取的內容是系統的版本、操作系統的名字以及當前登陸的用戶名。接下來先介紹一下相關的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);
}