I am using Delphi 7 Pro and need to get Win32MajorVersion and Win32MinorVersion, in order to diferenciate between Windows XP, Vista, 7, 8, 8.1 and 10.
After several hours researching (english is not my native language, sorry), I understood that I needed to change the manifest file for supporting Windows 8.1 and 10. Here is what I got:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="WinApp" version="11.0.2804.9245" processorArchitecture="*"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="False"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
</assembly>
But even after including this manifest, Win32MajorVersion and Win32MinorVersion still give me wrong information on Windows 8.1 and 10.
Please, what am I doing wrong?
PS. I found other SOF posts with other tecniques for not using the manifest file, like using WMI, the Windows registry, etc., but for my purposes I think the manifest will be the most simple and effective way.