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...