GetVersionEx 獲取系統版本資訊

2021-07-25 02:47:59 字數 1899 閱讀 4432

最近在windows 8上獲取系統版本資訊需要呼叫系統api,於是用到了getversionex。

首先看一看函式原型:

[cpp]view plain

copy

bool

getversionex(posversioninfo pversioninformation);  

結構osversioninfoex定義如下:

[cpp]view plain

copy

typedef

struct

osversioninfoex, *posversioninfoex;  

接著在呼叫函式之前先初始化結構的大小並呼叫函式,返回true表示成功:

[cpp]view plain

copy

osversioninfoex os;  

os.dwosversioninfosize=sizeof

(os);  

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

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

根據微軟作業系統編號發現windows 8 對應的windows version number是6.2

如下: 

operating system

version number

windows 8

6.2windows 7

6.1windows server 2008 r2

6.1windows server 2008

6.0windows vista

6.0windows server 2003 r2

5.2windows server 2003

5.2windows xp

5.1windows 2000

5.0下面是乙個通過系統版本來判斷作業系統名稱的例子:

[cpp]view plain

copy

cstring getsystemname()  

break

;  case

5:  

switch

(os.dwminorversion)  

break

;  case

6:  

switch

(os.dwminorversion)  

break

;  default

:  vname=_t("未知作業系統"

);  

}  return

vname;  

}  else

return

_t(""

);  

}  

以上只能判斷作業系統的名稱,那如何判斷它是什麼版本的呢(如home版或professional版)。

下面這個函式就返回具體的版本名稱:

[cpp]view plain

copy

cstring getversionmark()  

break

;  case

6:  

switch

(os.dwminorversion)  

break

;  default

:  vmark=_t(""

);  

}  return

vmark;  

}  else

return

_t(""

);  

}  

另外,作業系統的補丁包名稱也可以從szcsdversion直接獲取。

使用ALAssertLibrary獲取系統相簿

使用alassertlibrary必須要開啟系統定位,先判斷是否可以使用 iscanreadalasset yes void assetgroupenumerator alassetsgroup bool alassetsgroup group,bool stop group enumerator ...

GDAL獲取投影座標系注意問題

gdal提供了獲取投影座標系的c函式gdalgetprojectionref以及對應的c 函式getprojectionref,但在獲取投影座標系之前需要設定通過cplsetconfigoption函式設定 gdal data 環境變數,例如 cplsetconfigoption gdal data...

系 WEB系 泛用系 制御系 組込 系

泛用系 泛用的 使 方 言 意味 泛用計算機 銀行 基干係 使用 仕事 指 系 同義 最近 大型 等 呼 人 注意要 系 規格 沿 作 計算機 仕事。現在 windows 系 同義。系 言葉 既存 大型計算機 開発元 個 os 開発 他 互換性 獨佔市場 食 込 使 始 言葉 全然 windows ...