GetVersionExA-Funktion (sysinfoapi.h)

GetVersionExA kann nach Windows 8.1 geändert oder nicht mehr für Releases verfügbar sein. Verwenden Sie stattdessen die Versionshilfsfunktionen. Informationen zu Windows 10-Apps finden Sie unter Targeting your applications for Windows.For Windows 10 apps, please see Targeting your applications for Windows.

Mit der Veröffentlichung von Windows 8.1 hat sich das Verhalten der GetVersionEx-API in dem Wert geändert, den sie für die Betriebssystemversion zurückgeben wird. Der von der GetVersionEx-Funktion zurückgegebene Wert hängt jetzt davon ab, wie die Anwendung manifestiert wird.

Anwendungen, die nicht für Windows 8.1 oder Windows 10 manifestiert sind, geben den Windows 8-Betriebssystemversionswert (6.2) zurück. Sobald eine Anwendung für eine bestimmte Betriebssystemversion manifestiert wurde, gibt GetVersionEx immer die Version zurück, für die die Anwendung in zukünftigen Versionen manifestiert ist. Informationen zum Manifestieren Ihrer Anwendungen für Windows 8.1 oder Windows 10 finden Sie unter Targeting ihrer Anwendung für Windows.

Syntax

NOT_BUILD_WINDOWS_DEPRECATE BOOL GetVersionExA(
  [in, out] LPOSVERSIONINFOA lpVersionInformation
);

Parameter

[in, out] lpVersionInformation

Eine OSVERSIONINFOA - oder OSVERSIONINFOEXA-Struktur , die die Betriebssysteminformationen empfängt.

Legen Sie vor dem Aufrufen der GetVersionEx-Funktion den dwOSVersionInfoSize-Member der Struktur entsprechend fest, um anzugeben, welche Datenstruktur an diese Funktion übergeben wird.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Die Funktion schlägt fehl, wenn Sie einen ungültigen Wert für den dwOSVersionInfoSize-Member der OSVERSIONINFOA - oder OSVERSIONINFOEXA-Struktur angeben.

Hinweise

Die Identifizierung des aktuellen Betriebssystems ist in der Regel nicht die beste Methode, um zu bestimmen, ob ein bestimmtes Betriebssystemfeature vorhanden ist. Dies liegt daran, dass dem Betriebssystem möglicherweise neue Features in einer verteilbaren DLL hinzugefügt wurden. Anstatt GetVersionEx zu verwenden, um die Betriebssystemplattform oder Versionsnummer zu bestimmen, testen Sie, ob das Feature selbst vorhanden ist. Weitere Informationen finden Sie unter Betriebssystemversion.

Die GetSystemMetrics-Funktion stellt zusätzliche Informationen zum aktuellen Betriebssystem bereit.

Produkt Einstellung
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
 

Um nach bestimmten Betriebssystemen oder Betriebssystemfeatures zu suchen, verwenden Sie die IsOS-Funktion . Die GetProductInfo-Funktion ruft den Produkttyp ab.

Verwenden Sie zum Abrufen von Informationen zum Betriebssystem auf einem Remotecomputer die NetWkstaGetInfo-Funktion , die Win32_OperatingSystem WMI-Klasse oder die OperatingSystem-Eigenschaft der IADsComputer-Schnittstelle .

Um die aktuelle Systemversion mit einer erforderlichen Version zu vergleichen, verwenden Sie die VerifyVersionInfo-Funktion , anstatt GetVersionEx zu verwenden, um den Vergleich selbst durchzuführen.

Wenn der Kompatibilitätsmodus aktiviert ist, meldet die GetVersionEx-Funktion das Betriebssystem so, wie es sich selbst identifiziert, bei dem es sich möglicherweise nicht um das installierte Betriebssystem handelt. Wenn beispielsweise der Kompatibilitätsmodus aktiv ist, meldet GetVersionEx das Betriebssystem, das für die Anwendungskompatibilität ausgewählt ist.

Beispiele

Wenn Sie die GetVersionEx-Funktion verwenden, um zu bestimmen, ob Ihre Anwendung unter einer bestimmten Version des Betriebssystems ausgeführt wird, überprüfen Sie, ob Versionsnummern größer oder gleich den gewünschten Versionsnummern sind. Dadurch wird sichergestellt, dass der Test für spätere Versionen des Betriebssystems erfolgreich ist. Wenn Ihre Anwendung beispielsweise Windows XP oder höher erfordert, verwenden Sie den folgenden Test.

#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");
}

Ein Beispiel, das das aktuelle Betriebssystem identifiziert, finden Sie unter Abrufen der Systemversion.

Hinweis

Der Sysinfoapi.h-Header definiert GetVersionEx als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile sysinfoapi.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Getversion

OSVERSIONINFOA

OSVERSIONINFOEXA

Betriebssystemversion

Systeminformationsfunktionen

VerifyVersionInfo

Versionshilfsfunktionen