How to tell if the OS is Windows XP or higher?

后端 未结 3 1272
情话喂你
情话喂你 2020-12-13 19:17

I am trying to play with the Environment.OSVersion.Version object and can\'t really tell what version would indicate that the OS is Windows XP or higher (e.g. I

相关标签:
3条回答
  • 2020-12-13 19:52

    Check the Major property is greater than or equal to 5, and if 5 then Minor is at least 1. (XP was 5.1, 2003 was 5.2, Vista/2008 were 6.0).

    List of Windows Version Numbers on MSDN.

    0 讨论(0)
  • 2020-12-13 19:54

    Use the System.OperatingSystem object, then filter on the Major & Minor version numbers.

    I've used these functions in the past:

    static bool IsWinXPOrHigher()
    {
        OperatingSystem OS = Environment.OSVersion;
        return (OS.Platform == PlatformID.Win32NT) && ((OS.Version.Major > 5) || ((OS.Version.Major == 5) && (OS.Version.Minor >= 1)));
    }
    
    static bool IsWinVistaOrHigher()
    {
        OperatingSystem OS = Environment.OSVersion;
        return (OS.Platform == PlatformID.Win32NT) && (OS.Version.Major >= 6);
    }
    
    0 讨论(0)
  • 2020-12-13 20:00

    You shouldn't check the version number. Instead, you should check for the functionality you need. If it is a specific API you're after for example, LoadLibrary and GetProcAddress it - that way, you're not dependent on the version number.

    0 讨论(0)
提交回复
热议问题