Esempio n. 1
0
        private String GetEditionWindows()
        {
            String edition = String.Empty;

            OperatingSystem osVersion = Environment.OSVersion;

            NativeMethods.OS_VERSION_INFO_EX osVersionInfo = new NativeMethods.OS_VERSION_INFO_EX();
            osVersionInfo.OsVersionInfoSize = Marshal.SizeOf(typeof(NativeMethods.OS_VERSION_INFO_EX));

            if (NativeMethods.GetVersionEx(ref osVersionInfo))
            {
                int   majorVersion = osVersion.Version.Major;
                int   minorVersion = osVersion.Version.Minor;
                Byte  productType  = osVersionInfo.ProductTyp;
                short suiteMask    = osVersionInfo.SuiteMask;

                if (majorVersion == 4)
                {
                    if (productType == VER_NT_WORKSTATION)
                    {
                        // Windows NT 4.0 Workstation
                        edition = "Workstation";
                    }
                    else if (productType == VER_NT_SERVER)
                    {
                        if ((suiteMask & VER_SUITE_ENTERPRISE) != 0)
                        {
                            // Windows NT 4.0 Server Enterprise
                            edition = "Enterprise Server";
                        }
                        else
                        {
                            // Windows NT 4.0 Server
                            edition = "Standard Server";
                        }
                    }
                }
                else if (majorVersion == 5)
                {
                    if (productType == VER_NT_WORKSTATION)
                    {
                        if ((suiteMask & VER_SUITE_PERSONAL) != 0)
                        {
                            edition = "Home";
                        }
                        else
                        {
                            // 86 == SM_TABLETPC
                            if (NativeMethods.GetSystemMetrics(86) == 0)
                            {
                                edition = "Professional";
                            }
                            else
                            {
                                edition = "Tablet Edition";
                            }
                        }
                    }
                    else if (productType == VER_NT_SERVER)
                    {
                        if (minorVersion == 0)
                        {
                            if ((suiteMask & VER_SUITE_DATACENTER) != 0)
                            {
                                // Windows 2000 Datacenter Server
                                edition = "Datacenter Server";
                            }
                            else if ((suiteMask & VER_SUITE_ENTERPRISE) != 0)
                            {
                                // Windows 2000 Advanced Server
                                edition = "Advanced Server";
                            }
                            else
                            {
                                // Windows 2000 Server
                                edition = "Server";
                            }
                        }
                        else
                        {
                            if ((suiteMask & VER_SUITE_DATACENTER) != 0)
                            {
                                // Windows Server 2003 Datacenter Edition
                                edition = "Datacenter";
                            }
                            else if ((suiteMask & VER_SUITE_ENTERPRISE) != 0)
                            {
                                // Windows Server 2003 Enterprise Edition
                                edition = "Enterprise";
                            }
                            else if ((suiteMask & VER_SUITE_BLADE) != 0)
                            {
                                // Windows Server 2003 Web Edition
                                edition = "Web Edition";
                            }
                            else
                            {
                                // Windows Server 2003 Standard Edition
                                edition = "Standard";
                            }
                        }
                    }
                }
                else if (majorVersion == 6)
                {
                    int ed;

                    if (NativeMethods.GetProductInfo(majorVersion, minorVersion, osVersionInfo.ServicePackMajor, osVersionInfo.ServicePackMinor, out ed))
                    {
                        switch (ed)
                        {
                        case PRODUCT_BUSINESS: edition = "Business"; break;

                        case PRODUCT_BUSINESS_N: edition = "Business N"; break;

                        case PRODUCT_CLUSTER_SERVER: edition = "HPC Edition"; break;

                        case PRODUCT_CLUSTER_SERVER_V: edition = "HPC Edition without Hyper-V"; break;

                        case PRODUCT_DATACENTER_SERVER: edition = "Datacenter Server"; break;

                        case PRODUCT_DATACENTER_SERVER_CORE: edition = "Datacenter Server (core installation)"; break;

                        case PRODUCT_DATACENTER_SERVER_V: edition = "Datacenter Server without Hyper-V"; break;

                        case PRODUCT_DATACENTER_SERVER_CORE_V: edition = "Datacenter Server without Hyper-V (core installation)"; break;

                        case PRODUCT_EMBEDDED: edition = "Embedded"; break;

                        case PRODUCT_ENTERPRISE: edition = "Enterprise"; break;

                        case PRODUCT_ENTERPRISE_N: edition = "Enterprise N"; break;

                        case PRODUCT_ENTERPRISE_E: edition = "Enterprise E"; break;

                        case PRODUCT_ENTERPRISE_SERVER: edition = "Enterprise Server"; break;

                        case PRODUCT_ENTERPRISE_SERVER_CORE: edition = "Enterprise Server (core installation)"; break;

                        case PRODUCT_ENTERPRISE_SERVER_CORE_V: edition = "Enterprise Server without Hyper-V (core installation)"; break;

                        case PRODUCT_ENTERPRISE_SERVER_IA64: edition = "Enterprise Server for Itanium-based Systems"; break;

                        case PRODUCT_ENTERPRISE_SERVER_V: edition = "Enterprise Server without Hyper-V"; break;

                        case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: edition = "Essential Business Server MGMT"; break;

                        case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: edition = "Essential Business Server ADDL"; break;

                        case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: edition = "Essential Business Server MGMTSVC"; break;

                        case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: edition = "Essential Business Server ADDLSVC"; break;

                        case PRODUCT_HOME_BASIC: edition = "Home Basic"; break;

                        case PRODUCT_HOME_BASIC_N: edition = "Home Basic N"; break;

                        case PRODUCT_HOME_BASIC_E: edition = "Home Basic E"; break;

                        case PRODUCT_HOME_PREMIUM: edition = "Home Premium"; break;

                        case PRODUCT_HOME_PREMIUM_N: edition = "Home Premium N"; break;

                        case PRODUCT_HOME_PREMIUM_E: edition = "Home Premium E"; break;

                        case PRODUCT_HOME_PREMIUM_SERVER: edition = "Home Premium Server"; break;

                        case PRODUCT_HYPERV: edition = "Microsoft Hyper-V Server"; break;

                        case PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: edition = "Windows Essential Business Management Server"; break;

                        case PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: edition = "Windows Essential Business Messaging Server"; break;

                        case PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: edition = "Windows Essential Business Security Server"; break;

                        case PRODUCT_PROFESSIONAL: edition = "Professional"; break;

                        case PRODUCT_PROFESSIONAL_N: edition = "Professional N"; break;

                        case PRODUCT_PROFESSIONAL_E: edition = "Professional E"; break;

                        case PRODUCT_SB_SOLUTION_SERVER: edition = "SB Solution Server"; break;

                        case PRODUCT_SB_SOLUTION_SERVER_EM: edition = "SB Solution Server EM"; break;

                        case PRODUCT_SERVER_FOR_SB_SOLUTIONS: edition = "Server for SB Solutions"; break;

                        case PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: edition = "Server for SB Solutions EM"; break;

                        case PRODUCT_SERVER_FOR_SMALLBUSINESS: edition = "Windows Essential Server Solutions"; break;

                        case PRODUCT_SERVER_FOR_SMALLBUSINESS_V: edition = "Windows Essential Server Solutions without Hyper-V"; break;

                        case PRODUCT_SERVER_FOUNDATION: edition = "Server Foundation"; break;

                        case PRODUCT_SMALLBUSINESS_SERVER: edition = "Windows Small Business Server"; break;

                        case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: edition = "Windows Small Business Server Premium"; break;

                        case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: edition = "Windows Small Business Server Premium (core installation)"; break;

                        case PRODUCT_SOLUTION_EMBEDDEDSERVER: edition = "Solution Embedded Server"; break;

                        case PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE: edition = "Solution Embedded Server (core installation)"; break;

                        case PRODUCT_STANDARD_SERVER: edition = "Standard Server"; break;

                        case PRODUCT_STANDARD_SERVER_CORE: edition = "Standard Server (core installation)"; break;

                        case PRODUCT_STANDARD_SERVER_SOLUTIONS: edition = "Standard Server Solutions"; break;

                        case PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: edition = "Standard Server Solutions (core installation)"; break;

                        case PRODUCT_STANDARD_SERVER_CORE_V: edition = "Standard Server without Hyper-V (core installation)"; break;

                        case PRODUCT_STANDARD_SERVER_V: edition = "Standard Server without Hyper-V"; break;

                        case PRODUCT_STARTER: edition = "Starter"; break;

                        case PRODUCT_STARTER_N: edition = "Starter N"; break;

                        case PRODUCT_STARTER_E: edition = "Starter E"; break;

                        case PRODUCT_STORAGE_ENTERPRISE_SERVER: edition = "Enterprise Storage Server"; break;

                        case PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: edition = "Enterprise Storage Server (core installation)"; break;

                        case PRODUCT_STORAGE_EXPRESS_SERVER: edition = "Express Storage Server"; break;

                        case PRODUCT_STORAGE_EXPRESS_SERVER_CORE: edition = "Express Storage Server (core installation)"; break;

                        case PRODUCT_STORAGE_STANDARD_SERVER: edition = "Standard Storage Server"; break;

                        case PRODUCT_STORAGE_STANDARD_SERVER_CORE: edition = "Standard Storage Server (core installation)"; break;

                        case PRODUCT_STORAGE_WORKGROUP_SERVER: edition = "Workgroup Storage Server"; break;

                        case PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: edition = "Workgroup Storage Server (core installation)"; break;

                        case PRODUCT_UNDEFINED: edition = "Unknown product"; break;

                        case PRODUCT_ULTIMATE: edition = "Ultimate"; break;

                        case PRODUCT_ULTIMATE_N: edition = "Ultimate N"; break;

                        case PRODUCT_ULTIMATE_E: edition = "Ultimate E"; break;

                        case PRODUCT_WEB_SERVER: edition = "Web Server"; break;

                        case PRODUCT_WEB_SERVER_CORE: edition = "Web Server (core installation)"; break;
                        } // end switch (ed)
                    }     // end if (GetProductInfo())
                }         // end else (else if (majorVersion == 6))
            }             // end if (GetVersionEx(ref osVersionInfo))

            return(edition);
        }
Esempio n. 2
0
        private String GetNameWindows()
        {
            String name = "unknown";

            OperatingSystem osVersion = Environment.OSVersion;

            NativeMethods.OS_VERSION_INFO_EX osVersionInfo = new NativeMethods.OS_VERSION_INFO_EX();
            osVersionInfo.OsVersionInfoSize = Marshal.SizeOf(typeof(NativeMethods.OS_VERSION_INFO_EX));

            if (NativeMethods.GetVersionEx(ref osVersionInfo))
            {
                int majorVersion = osVersion.Version.Major;
                int minorVersion = osVersion.Version.Minor;

                switch (osVersion.Platform)
                {
                case PlatformID.Win32S: name = "Windows 3.1"; break;

                case PlatformID.WinCE: name = "Windows CE"; break;

                case PlatformID.Win32Windows:
                {
                    if (majorVersion == 4)
                    {
                        String csdVersion = osVersionInfo.CsdVersion;
                        switch (minorVersion)
                        {
                        case 0:
                        {
                            if (csdVersion == "B" || csdVersion == "C")
                            {
                                name = "Windows 95 OSR2";
                            }
                            else
                            {
                                name = "Windows 95";
                            }
                        }
                        break;

                        case 10:
                        {
                            if (csdVersion == "A")
                            {
                                name = "Windows 98 Second Edition";
                            }
                            else
                            {
                                name = "Windows 98";
                            }
                        }
                        break;

                        case 90: name = "Windows Me"; break;
                        }
                    }
                    break;
                }

                case PlatformID.Win32NT:
                {
                    Byte productType = osVersionInfo.ProductTyp;

                    switch (majorVersion)
                    {
                    case 3: name = "Windows NT 3.51"; break;

                    case 4:
                        switch (productType)
                        {
                        case 1: name = "Windows NT 4.0"; break;

                        case 3: name = "Windows NT 4.0 Server"; break;
                        }
                        break;

                    case 5:
                        switch (minorVersion)
                        {
                        case 0: name = "Windows 2000"; break;

                        case 1: name = "Windows XP"; break;

                        case 2: name = "Windows Server 2003"; break;
                        }
                        break;

                    case 6:
                        switch (minorVersion)
                        {
                        case 0:
                            switch (productType)
                            {
                            case 1: name = "Windows Vista"; break;

                            case 3: name = "Windows Server 2008"; break;
                            }
                            break;

                        case 1:
                            switch (productType)
                            {
                            case 1: name = "Windows 7"; break;

                            case 3: name = "Windows Server 2008 R2"; break;
                            }
                            break;
                        }
                        break;
                    }
                    break;
                }
                } // end switch (osVersion.Platform)
            }     // end if (GetVersion())

            return(name);
        }