मैं एक पीसी पर WindowsVersion का पता लगाने के लिए इस कोड का उपयोग कर रहा हूँ। मेजर संस्करण 5. मैं जाँच की और यह (windows8 पर notepad.exe के अनुसार) संस्करण 6.2 होना चाहिए था कि यह एक है -विंडोज 8 उपभोक्ता पूर्वावलोकन गलत मेजर संस्करण?
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 Consumer Preview बिल्ड 8250 (32 बिट) के लिए Windows XP है बग या कुछ गलत है? btw। मेरा विंडोज 8 up2date है।
कोई विचार?
संपादित करें: स्क्रीनशॉट
क्या आपने इसे डिबग करने का प्रयास किया है? यह देखने के लिए जांचें कि आप 'osVerInfo' में वापस क्या प्राप्त करते हैं और यह देखने के लिए कि आप उस परिणाम के साथ कैसे समाप्त होते हैं, इसके माध्यम से पता लगाएं। इससे आपको पता चल जाएगा कि क्या हो रहा है। –
मैंने पूरे osVerInfo को देखा और इसे डीबग किया। यह मेजर वर्जन 5. –
कहता है कि आपका ऐप एक्सपी संगतता मोड के तहत चल रहा है? –