獲取Windows版本

2021-06-20 14:33:41 字數 1746 閱讀 8062

要利用api獲取windows 8.1的版本號,必須自定義manifest檔案,指定程式支援windows8.1,manifest檔案如下:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

將manifest檔案應用到專案:

「專案"——"屬性"——"清單工具"——"輸入和輸出"——將manifest檔案的名稱填入到"附加清單檔案」裡面,編譯。

獲取windows版本的**如下:

typedef void (winapi *getnativesysteminfo)(lpsystem_info);

typedef bool (winapi *getproductinfo)(dword,dword,dword,dword,pdword);

bool getwindowsversion(lptstr pszos, size_t cchlen)

pgnsi = (getnativesysteminfo)getprocaddress(getmodulehandle(_t("kernel32.dll")),"getnativesysteminfo");

if(null != pgnsi)

pgnsi(&si);

else

getsysteminfo(&si);

if(ver_platform_win32_nt == osvi.dwplatformid && osvi.dwmajorversion > 4)

else if(osvi.dwminorversion == 2)

else if(osvi.dwminorversion == 1)

else if(osvi.dwminorversion == 0)

pgpi = (getproductinfo)getprocaddress(getmodulehandle(_t("kernel32.dll")),"getproductinfo");

if(pgpi)

switch(dwtype)

if(si.wprocessorarchitecture == processor_architecture_amd64)

stringcchcat(pszos,cchlen,_t(", 64-bit"));

else if(si.wprocessorarchitecture == processor_architecture_intel)

stringcchcat(pszos,cchlen,_t(", 32-bit"));

} if(osvi.dwmajorversion == 5)

if(osvi.wproducttype != ver_nt_workstation)

else if(si.wprocessorarchitecture == processor_architecture_amd64)

else}}

else if(osvi.dwminorversion == 1)

else if(osvi.dwminorversion == 0)

}} tchar szbuf[80];

stringcchprintf(szbuf,80,_t(" (build %d)"), osvi.dwbuildnumber);

stringcchcat(pszos,cchlen + 80, szbuf);

return true;

} else

}

獲取Windows系統版本資訊

1.獲取windows版本 peb結構 在peb結構中存放著作業系統版本資訊的函式,ulong osmajorversion a4h 偏移位址a4h顯示作業系統主版本號 ulong osminorversion a8h 偏移位址a8h顯示作業系統子版本號 通過讀取osmajorversion和osm...

Cpp獲取Windows系統版本

參考 windows 下c 獲取作業系統版本名稱筆記 感謝原博主的分享 windows通過c 獲取作業系統主要分兩種 1 windows是8.1版本以下版本 獲取作業系統可以通過windows提供的api中getversionex函式來獲取 2 windows是8.1版本及以上 獲取作業系統主要通過...

獲取php版本

phpversion 函式可以獲取版本 version compare可以比較兩個版本 mixed version compare string version1,string version2 string operator 此函式首先在版本字串裡用乙個點 替換 和 也會在任意非數字前後插入乙個點...