본문 바로가기
프로그래밍/C#

[C#] Visual Studio에서 현재 컴퓨터의 Window 버전 확인하기

by tempus 2021. 10. 25.
반응형

윈도우 프로그램을 만들 때 설치되는 컴퓨터가 실행 가능한 Window 버전인지 확인해야 할 때가 있습니다. 이를 위해서 C#에서는 System.OperatingSystem을 통해서 현재 컴퓨터의 Window 버전을 알 수 있습니다.

 

System.Envrionment.OSVersion에서 대부분 Windows OS 버전을 구별할 수 있습니다. 다음 표는 각 윈도우 버전을 구분하기 위한 매핑되는 세 가지 요소를 나타냈습니다.

 

sheet_1.png


C#에서는 다음과 같이 찾을 수 있습니다.

OperatingSystem os = Environment.OSVersion;
var platFormID = os.Platform;
var majorVersion = os.Version.Major;
var minorVersion = os.Version.Minor;

 

📔 코드

기본적으로 대부분의 컴퓨터는 PlatformID가 Win32NT를 기준으로 나누면 될 것입니다. (해당 코드는 Window 98 이하는 구분하지 않고 있습니다.)

using System;

namespace WindowVersion
{
    public class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("******************************************");
            Console.WriteLine($"현재 Window Version : {WidnowVersion.getWindowVersion()}");
            Console.WriteLine("******************************************");
        }
     
    }

    public static class WidnowVersion
    {

        public static string getWindowVersion()
        {
            OperatingSystem os = Environment.OSVersion;
            
            switch (os.Platform)
            {
                case PlatformID.Win32NT:
                    return getWindowVersionInWin32NT(os.Version);
                default:
                    return "UnKnown or not more than Window 98";
            }
        }


        private static string getWindowVersionInWin32NT(Version version)
        {
            switch (version.Major)
            {
                case 4:
                    return "Windows NT 4.0";
                case 5:
                    if (version.Minor == 0)
                        return "Windows 2000";
                    else if (version.Minor == 1)
                        return "Windows XP";
                    else
                        return "Windows 2003";
                case 6:
                    if (version.Minor == 0)
                        return "Windows Vista";
                    else if (version.Minor == 1)
                        return "Windows 7";
                    else
                        return "Windows 8";
                case 10:
                    if (version.Minor == 0)
                        return "Windows 10";
                    else
                        return "Windows 10";
                default:
                    return "UnKnown Version";
            }
        }
    }
}
반응형

댓글


loading