c 獲取作業系統的版本(vs2013)

2021-06-18 19:14:49 字數 1553 閱讀 8593

在vs2013下,使用getversionex來獲取作業系統的版本資訊,vs報錯error: `getversionex『 declared deprecated,於是去msdn檢視了一下,推薦使用verifyversioninfo來進行版本判斷,官方解釋是因為一般只要判斷是否windows的版本大於某個特定的版本號。

於是我檢視了一下verifyversioninfo,這個函式的使用就是針對特定的版本資訊字段進行條件判斷。

引數1:osversioninfoex  這個結構裡儲存使用者提供的系統版本資訊,例如major version,minor version等,這些會用作和系統實際資訊進行比較。

引數2:dwtypemask                型別掩碼,是由一些巨集進行或操作之後的結果,例如 ver_majorversion | ver_minorversion 告訴函式major version和minor version需要進行比較,如果只定義ver_majorversion那麼就只會判斷major version欄位。

引數3:dwlconditionmask        條件掩碼,目的是向使用者提供豐富的判斷條件設定,各個欄位都有相應的判斷條件設定,通過ver_set_condition巨集進行條件設定。

我寫了一段**進行windows版本判斷:

bool iswinversionequalto(dword dwmajorversion, dword dwminorversion)

bool iswinversiongreaterthan(dword dwmajorversion, dword dwminorversion)

bool iswinversionlessthan(dword dwmajorversion, dword dwminorversion)

void initializewindowsversion(void)

/* windows xp */

else if (iswinversionequalto(5, 1))

/* windows server 2003 */

else if (iswinversionequalto(5, 2))

/* windows vista, windows server 2008 */

else if (iswinversionequalto(6, 0))

/* windows 7, windows server 2008 r2 */

else if (iswinversionequalto(6, 1))

/* windows 8 */

else if (iswinversionequalto(6, 2))

else if (iswinversiongreaterthan(6,2))

}

這段**用來對windows版本進行判斷,感覺比用getversionex來的麻煩很多... 可能是沒發現別的方法.

microsoft已經提供了眾多的版本檢查函式,例如iswindowsxporgreater,iswindows7orgreater...

具體可以去參考

前端獲取作業系統 作業系統版本

在做埋點的過程中,遇到要上傳作業系統和作業系統版本的需求,如下 通過n igator.useragent獲取首先將作業系統確定為如下對映 all os 獲取當前作業系統 獲取當前作業系統 export const getos if useragent.includes mac else if use...

c 獲取mac作業系統的版本號

最近專案需要判斷mac系統是否低於10.15.但是一直不知道怎麼獲取,這次記錄一下獲取方式。首先qt當中有乙個qsysinfo類,按道理是可以獲取到系統版本的。但是我們看下面這個函式,它的返回值macversion是乙個列舉,這個列舉最多能獲取到10.12的系,顯然不符合我們的要求。所以,我們只有另...

c 檢測作業系統版本

我們通過system.environment.osversion.version獲得作業系統的版本號,然後再根據版本號進行判斷作業系統是什麼版本 0參考於 注意 在msdn官方文件有說明 osversion 屬性報告兩個相同的版本號 6.2.0.0 windows 8 和 windows 8.1。在...