Função GetVersionExA (sysinfoapi.h)
GetVersionExA pode estar alterado ou indisponível para versões após o Windows 8.1. Em vez disso, use as funções do Auxiliar de Versão . Para aplicativos do Windows 10, consulte Direcionando seus aplicativos para Windows.
Com a versão do Windows 8.1, o comportamento da API getversionex
Os aplicativos não manifestados para Windows 8.1 ou Windows 10 retornarão o valor da versão do sistema operacional Windows 8 (6.2). Depois que um aplicativo é manifestado para uma determinada versão do sistema operacional, GetVersionEx sempre retornará a versão para a qual o aplicativo se manifesta em versões futuras. Para manifestar seus aplicativos para Windows 8.1 ou Windows 10, consulte Direcionando seu aplicativo para Windows.
Sintaxe
NOT_BUILD_WINDOWS_DEPRECATE BOOL GetVersionExA(
[in, out] LPOSVERSIONINFOA lpVersionInformation
);
Parâmetros
[in, out] lpVersionInformation
Uma estrutura osVERSIONINFOA
Antes de chamar a função GetVersionEx, defina o dwOSVersionInfoSize membro da estrutura conforme apropriado para indicar qual estrutura de dados está sendo passada para essa função.
Valor de retorno
Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError. A função falhará se você especificar um valor inválido para o membro
Observações
Identificar o sistema operacional atual geralmente não é a melhor maneira de determinar se um recurso específico do sistema operacional está presente. Isso ocorre porque o sistema operacional pode ter tido novos recursos adicionados em uma DLL redistribuível. Em vez de usar GetVersionEx para determinar a plataforma do sistema operacional ou o número de versão, teste a presença do próprio recurso. Para obter mais informações, consulte de versão do sistema operacional.
A função GetSystemMetrics fornece informações adicionais sobre o sistema operacional atual.
Produto | Ambiente |
---|---|
Windows XP Media Center Edition | SM_MEDIACENTER |
Windows XP Starter Edition | SM_STARTER |
Windows XP Tablet PC Edition | SM_TABLETPC |
Windows Server 2003 R2 | SM_SERVERR2 |
Para verificar se há sistemas operacionais específicos ou recursos do sistema operacional, use a função IsOS. A função GetProductInfo recupera o tipo de produto.
Para recuperar informações para o sistema operacional em um computador remoto, use a função
Para comparar a versão atual do sistema com uma versão necessária, use a função
Se o modo de compatibilidade estiver em vigor, a função GetVersionEx relatará o sistema operacional conforme ele se identifica, que pode não ser o sistema operacional instalado. Por exemplo, se o modo de compatibilidade estiver em vigor, GetVersionEx relatará o sistema operacional selecionado para de compatibilidade do aplicativo.
Exemplos
Ao usar a função GetVersionEx para determinar se o aplicativo está em execução em uma versão específica do sistema operacional, verifique se há números de versão maiores ou iguais aos números de versão desejados. Isso garante que o teste seja bem-sucedido para versões posteriores do sistema operacional. Por exemplo, se o aplicativo exigir o Windows XP ou posterior, use o teste a seguir.
#include <windows.h>
#include <stdio.h>
void main()
{
OSVERSIONINFO osvi;
BOOL bIsWindowsXPorLater;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
bIsWindowsXPorLater =
( (osvi.dwMajorVersion > 5) ||
( (osvi.dwMajorVersion == 5) && (osvi.dwMinorVersion >= 1) ));
if(bIsWindowsXPorLater)
printf("The system meets the requirements.\n");
else printf("The system does not meet the requirements.\n");
}
Para obter um exemplo que identifica o sistema operacional atual, consulte Obtendo a versão do sistema.
Nota
O cabeçalho sysinfoapi.h define GetVersionEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | sysinfoapi.h (inclua Windows.h) |
biblioteca | Kernel32.lib |
de DLL |
Kernel32.dll |
Consulte também
getversion
de versão do sistema operacional