判斷作業系統版本資訊

2021-06-18 21:33:29 字數 1573 閱讀 6676

windows api 中有兩個函式可以得到系統版本資訊:getversion和getversionex。

getversion這個函式曾經困擾了很多程式設計師,其本來設計的是在dword返回值中用低位的那個字表示ms-dos的版本號,高位的那個字表示windows版本號。對於每個字來說,高位位元組代表主要版本號,低位位元組代表次要版本號。可是因為編寫此函式的程式設計師犯了乙個錯誤,使得此函式返回的windows版本號顛倒了(即把主要版本號放到了低位位元組,而次要版本號放到了高位位元組)。當發現此錯誤的時候已經有很多程式設計師在使用這個函式了,microsoft只好將錯就錯,直接把原來的api文件給改了過來。

為了解決getversion帶來的問題,microsoft後來開發了乙個新的函式getversionex,用它能夠得到更詳細的windows系統的版本資訊,下面我就寫寫getversionex的使用方法。

函式原型:

bool getversionex(posversioninfo pversioninformation);

我們先來看看osversioninfoex這個結構:

typedef struct osversioninfoex, *posversioninfoex;

這個結構在windows 2000後出現,老版本的osversioninfo結構沒有wservicepackmajor、wservicepackminor、wsuitemask、wproducttype和wreserved這幾個成員。

接著在呼叫函式之前先初始化結構的大小:

osversioninfoex os;

os.dwosversioninfosize=sizeof(os);

函式返回值為true表示成功:

if(!getversionex((osversioninfo *)&os))

return false;

函式呼叫成功以後就可以通過osversioninfoex來檢視系統的版本資訊了。

//判斷作業系統名稱

cstring getsystemname()

break;

case 5:

switch(os.dwminorversion)

break;

case 6:

switch(os.dwminorversion)

break;

default:

vname=_t("未知作業系統");

} return vname;

} else

return _t("");

}

//返回具體的版本名稱

cstring getversionmark()

break;

case 6:

switch(os.dwminorversion)

break;

default:

vmark=_t("");

} return vmark;

} else

return _t("");

}

程式 判斷Windows作業系統的版本

02 判斷作業系統.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include pch.h include include include using namespace std string getsystemname string name 未知作業系統 switch osi...

linux下檢視作業系統版本資訊

常用的 quote uname a linux 176 2.6.9 89.elsmp 1 smp mon apr 20 10 34 33 edt 2009 i686 i686 i386 gnu linux quote 從proc檔案系統中檔案檢視 quote cat proc version lin...

linux檢視作業系統版本 記憶體資訊

檢視linux伺服器的系統資訊 新接手了幾台linux的伺服器,第一步當然是要了解這些伺服器的軟硬體配置.現在就寫出我這次用的一些命令.首先當然要取得機器的ip,使用者名稱和密碼 呵呵,不知道就找原來的管理員要哈 登陸之後,首先看到的就是機器的名稱,一般提示符就有了,如 root localhost...