Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W systemie Windows 8.1 lub nowszym funkcje GetVersion oraz GetVersionEx zostały wycofane. Od systemu Windows 10 funkcja VerifyVersionInfo jest również przestarzała. Nadal można wywoływać przestarzałe funkcje, ale jeśli aplikacja nie jest przeznaczona specjalnie dla systemu Windows 8.1 lub nowszego, funkcje będą zwracać wersję systemu Windows 8 (6.2).
Notatka
getVersion, GetVersionEx, VerifyVersionInfoi funkcje pomocnika wersji są przeznaczone tylko dla aplikacji klasycznych. Aplikacje uniwersalne systemu Windows mogą używać właściwości AnalyticsInfo.VersionInfo na potrzeby danych telemetrycznych i dzienników diagnostycznych.
Aby aplikacja była zgodna z systemem Windows 8.1 lub nowszym, należy uwzględnić manifest pliku wykonywalnego (aplikacji). Następnie w sekcji <zgodności> manifestu należy dodać element <obsługiwanego systemuOS> dla każdej wersji systemu Windows, którą chcesz zadeklarować, że aplikacja obsługuje.
Poniższy przykład przedstawia plik manifestu aplikacji dla aplikacji, która obsługuje wszystkie wersje systemu Windows z systemu Windows Vista do systemu 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>
Deklarowanie obsługi systemu Windows 8.1 lub nowszego w manifeście aplikacji nie będzie miało żadnego wpływu podczas uruchamiania aplikacji w poprzednich systemach operacyjnych.
Powyższy manifest aplikacji zawiera również sekcję <trustInfo>, która określa, jak system powinien traktować ją w odniesieniu do Kontrola Konta Użytkownika (UAC). Dodanie trustInfo nie jest niezbędne, ale zdecydowanie zalecane, nawet jeśli aplikacja nie potrzebuje żadnego konkretnego zachowania związanego z funkcją kontroli dostępu użytkownika. Szczególnie, jeśli w ogóle nie dodasz trustInfo, wówczas 32-bitowe wersje x86 Twojej aplikacji będą podlegać wirtualizacji plików UAC, co umożliwia zapisywanie w folderach wymagających uprawnień administratora, takich jak foldery systemowe Windows, które w innym przypadku by się nie powiodły, ale przekierowuje je do folderu "VirtualStore" przypisanego do użytkownika.
Tematy pokrewne
- Pobieranie wersji systemu
- funkcje pomocnicze wersji
- OSVERSIONINFO
- OSVERSIONINFOEX