Direcionando seu aplicativo para o Windows
No Windows 8.1 e posterior, as funções GetVersion e GetVersionEx foram preteridas. A partir de Windows 10, a função VerifyVersionInfo também é preterida. Você ainda pode chamar as funções preteridas, mas se o aplicativo não direcionar especificamente Windows 8.1 ou posterior, as funções retornarão a versão do Windows 8 (6.2).
Observação
As funções GetVersion, GetVersionEx, VerifyVersionInfo e Version Helper são apenas para aplicativos da área de trabalho. Os aplicativos Universais do Windows podem usar a propriedade AnalyticsInfo.VersionInfo para telemetria e logs de diagnóstico.
Para que seu aplicativo tenha como destino Windows 8.1 ou posterior, você precisará incluir um manifesto do aplicativo (executável) para o executável do aplicativo. Em seguida, na <seção de compatibilidade> do manifesto, você precisará adicionar um <elemento COM SUPORTE> para cada versão do Windows à qual deseja declarar que seu aplicativo dá suporte.
O exemplo a seguir mostra um arquivo de manifesto do aplicativo para um aplicativo que dá suporte a todas as versões do Windows do Windows Vista para 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>
Declarar suporte para Windows 8.1 ou posterior no manifesto do aplicativo não terá nenhum efeito ao executar seu aplicativo em sistemas operacionais anteriores.
O manifesto do aplicativo acima também inclui uma <seção trustInfo>, que especifica como o sistema deve tratá-lo em relação ao UAC (Controle de Conta de Usuário). Adicionar trustInfo não é essencial, mas é altamente recomendável, mesmo quando seu aplicativo não precisa de nenhum comportamento relacionado ao UAC específico. Em particular, se você não adicionar trustInfo , as versões x86 de 32 bits do seu aplicativo estarão sujeitas à virtualização de arquivo UAC, o que permite que gravações em pastas com privilégios de administrador, como as pastas do sistema Windows, tenham êxito quando falharem, mas as redirecionará para uma pasta "VirtualStore" específica do usuário.
Tópicos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de