Uw toepassing voor Windows richten
In Windows 8.1 en hoger zijn de functies GetVersion en GetVersionEx afgeschaft. Vanaf Windows 10 wordt de functie VerifyVersionInfo ook afgeschaft. U kunt de afgeschafte functies nog steeds aanroepen, maar als uw toepassing niet specifiek gericht is op Windows 8.1 of hoger, retourneren de functies de Windows 8-versie (6.2).
Notitie
GetVersion, GetVersionEx, VerifyVersionInfoen de functies Version Helper zijn alleen voor bureaublad-apps. Universele Windows-apps kunnen gebruikmaken van de eigenschap AnalyticsInfo.VersionInfo voor telemetrie- en diagnostische logboeken.
Als u wilt dat uw app is gericht op Windows 8.1 of hoger, moet u een app-manifest (uitvoerbaar) opnemen voor het uitvoerbare bestand van de app. Vervolgens moet u in de compatibiliteitssectie <> van het manifest een <ondersteundOS->-element toevoegen voor elke Windows-versie die u wilt aangeven als ondersteund door uw app.
In het volgende voorbeeld ziet u een app-manifestbestand voor een app die ondersteuning biedt voor alle versies van Windows Vista naar Windows 11:
<!-- example.exe.manifest -->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity
type="win32"
name="Contoso.ExampleApplication.ExampleBinary"
version="1.2.3.4"
processorArchitecture="x86"
/>
<description>Contoso Example Application</description>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 and Windows 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<!--
UAC settings:
- app should run at same integrity level as calling process
- app does not need to manipulate windows belonging to
higher-integrity-level processes
-->
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Het declareren van ondersteuning voor Windows 8.1 of hoger in uw app-manifest heeft geen effect bij het uitvoeren van uw app op eerdere besturingssystemen.
Het bovenstaande app-manifest bevat ook een <trustInfo> sectie, waarmee wordt aangegeven hoe het systeem het moet behandelen met betrekking tot UAC (User Account Control). Het toevoegen van trustInfo is niet essentieel, maar het wordt ten zeerste aanbevolen, zelfs wanneer uw app geen specifiek UAC-gerelateerd gedrag nodig heeft. Met name als u helemaal geen trustInfo toevoegt, worden 32-bits x86-versies van uw app onderworpen aan UAC-bestandsvirtualisatie, waardoor schrijfbewerkingen naar mappen met beheerdersbevoegdheden, zoals de Windows-systeemmappen, worden uitgevoerd wanneer ze anders zouden mislukken, maar worden ze omgeleid naar een gebruikerspecifieke map VirtualStore.