我使用此代碼來檢測PC上的WindowsVersion。Windows 8 Consumer Preview錯誤的主要版本?
function GetOS: string;
var
osVerInfo: TOSVersionInfo;
majorVer, minorVer: Integer;
begin
Result := 'Unknown';
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
majorVer := osVerInfo.dwMajorVersion;
minorVer := osVerInfo.dwMinorVersion;
case osVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT: {Mirosoft Windows NT/2000 }
begin
if majorVer <= 4 then
Result := 'Win NT'
else if (majorVer = 5) and (minorVer = 0) then
Result := 'Win 2k'
else if (majorVer = 5) and (minorVer = 1) then
Result := 'Win XP'
else if (majorVer = 6) and (minorVer = 0) then
Result := 'Win Vista'
else if (majorVer = 6) and (minorVer = 1) then
Result := 'Win 7'
else if (majorVer = 6) and (minorVer = 2) then
Result := 'Win 8'
end;
VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME }
begin
if (majorVer = 4) and (minorVer = 0) then
Result := 'Win 95'
else if (majorVer = 4) and (minorVer = 10) then
begin
if osVerInfo.szCSDVersion[1] = 'A' then
Result := 'Win 98SE'
else
Result := 'Win 98';
end
else if (majorVer = 4) and (minorVer = 90) then
Result := 'Win ME'
end;
end;
end;
end;
出於某種原因,它說的Windows8消費者預覽版構建8250(32位)是Windows XP中 - 大版本5.我檢查,它應該(根據上的Windows8的notepad.exe)是6.2版本是這樣一個錯誤還是有問題?順便說一句。我的Windows 8是up2date。
任何想法?
編輯:截圖
你試過調試嗎?檢查一下你在'osVerInfo'中找回的內容並追蹤它,看看最終結果如何。這會讓你知道發生了什麼。 –
我翻看了整個osVerInfo並進行了調試。它說大版本5. –
也許你的應用程序在XP兼容模式下運行? –