본문 바로가기

Windows

[Windows] Visual C# .NET을 사용하여 Windows 버전 확인

원문 URL : http://support.microsoft.com/kb/304283


이 문서에서는 응용 프로그램을 실행하고 있는 시스템의 운영 체제를 확인하는 방법을 단계별로 설명합니다. 이 문서에서는 Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows 98 Second Edition, Microsoft Windows Millennium Edition(Me), Microsoft Windows NT 3.51, Microsoft Windows NT 4.0, Microsoft Windows 2000 및 Microsoft Windows XP가 서로 구분됩니다.

요구 사항

  • Microsoft Visual C# .NET
  • Visual C# 프로그래밍을 어느 정도 이해하고 있어야 합니다.

Windows 버전 데이터 알아내기

시스템에서 현재 실행 중인 운영 체제를 확인하려면 다음 데이터를 알아내야 합니다.

표 축소표 확대

Windows 95Windows 98Windows MeWindows NT 4.0Windows 2000Windows XP
플랫폼 ID 1 1 1 2 2 2
주 버전 4 4 4 4 5 5
부 버전 0 10 90 0 0 1

참고: 이 문서에 나와 있는 코드로 32비트 버전의 Windows를 모두 확인할 수 있지만 이 중 Windows 95와 Windows NT 3.51은 Microsoft Visual Studio .NET 또는 공용 언어 런타임(CLR)을 지원하지 않습니다.

운영 체제 정보 알아내기

System 네임스페이스에는 OperatingSystem 클래스가 포함되어 있습니다. OperatingSystem 클래스의 속성들은 사용 중인 운영 체제에 대해 필요한 정보를 제공합니다. System.Environment 클래스의 OSVersion 속성은 OperatingSystem 개체를 반환합니다.
    System.OperatingSystem osInfo = System.Environment.OSVersion;

플랫폼 확인

OperatingSystem 정보를 논리적으로 평가하는 데 있어 첫번째 단계는 사용 중인 플랫폼을 확인하는 것입니다. OperatingSystem 클래스의 PlatformID 속성을 사용하면 사용 중인 플랫폼을 확인할 수 있습니다.

예를 들어, Win32Windows 속성이 열거하는 값은 다음 운영 체제 중 하나를 나타냅니다.
  • Windows 95
  • Windows 98
  • Windows 98 Second Edition
  • Windows Me
마찬가지로, WinNT 속성은 다음 운영 체제 중 하나를 나타냅니다.
  • Windows NT 3.51
  • Windows NT 4.0
  • Windows 2000
  • Windows XP
    switch(osInfo.Platform)
{
case System.PlatformID.Win32Windows:
{
//Code to determine specific version of Windows 95,
//Windows 98, Windows 98 Second Edition, or Windows Me.
}

case System.PlatformID.Win32NT:
{
//Code to determine specific version of Windows NT 3.51,
//Windows NT 4.0, Windows 2000, or Windows XP.
}

}

Windows 95, Windows 98, Windows 98 Second Edition 또는 Windows Me의 해당 버전 확인

사용 중인 플랫폼이 Windows 95, Windows 98, Windows 98 Second Edition 또는 Windows Me인 경우 주 버전 또는 부 버전을 분석하여 해당 버전을 확인할 수 있습니다.
    //Platform is Windows 95, Windows 98, Windows 98 Second Edition, or Windows Me.
case System.PlatformID.Win32Windows:

switch (osInfo.Version.Minor)
{
case 0:
Console.WriteLine ("Windows 95");
break;
case 10:
if(osInfo.Version.Revision.ToString()=="2222A")
Console.WriteLine("Windows 98 Second Edition");
else
Console.WriteLine("Windows 98");
break;
case 90:
Console.WriteLine("Windows Me");
break;
}break;

Windows NT, Windows 2000 또는 Windows XP의 해당 버전 확인

사용 중인 플랫폼이 Windows NT 3.51, Windows NT 4.0, Windows 2000 또는 Windows XP인 경우 주 버전 또는 부 버전을 분석하여 해당 버전을 확인할 수 있습니다.
    //Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000, or Windows XP.
case System.PlatformID.Win32NT:

switch(osInfo.Version.Major)
{
case 3:
Console.WriteLine("Windows NT 3.51");
break;
case 4:
Console.WriteLine("Windows NT 4.0");
break;
case 5:
if (osInfo.Version.Minor==0)
Console.WriteLine("Windows 2000");
else
Console.WriteLine("Windows XP");
break;
}break;

예제 작성

버전을 확인하도록 테스트 시나리오를 작성하려면 다음 절차를 수행하십시오.
  1. Visual Studio .NET에서 새로운 C# 콘솔 응용 프로그램을 엽니다. 기본적으로 Class1.cs의 코드 창이 열립니다.
  2. Class1.cs 코드 편집기 창에 나타나는 모든 코드를 다음 코드로 대체합니다.
    using System;

    namespace determineOS_CS
    {
    class Class1
    {
    static void Main(string[] args)
    {
    //Get OperatingSystem information from the system namespace.
    System.OperatingSystem osInfo =System.Environment.OSVersion;

    //Determine the platform.
    switch(osInfo.Platform)
    {
    //Platform is Windows 95, Windows 98, Windows 98 Second Edition,
    //or Windows Me.
    case System.PlatformID.Win32Windows:

    switch (osInfo.Version.Minor)
    {
    case 0:
    Console.WriteLine ("Windows 95");
    break;
    case 10:
    if(osInfo.Version.Revision.ToString()=="2222A")
    Console.WriteLine("Windows 98 Second Edition");
    else
    Console.WriteLine("Windows 98");
    break;
    case 90:
    Console.WriteLine("Windows Me");
    break;
    }
    break;

    //Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000, or Windows XP.
    case System.PlatformID.Win32NT:

    switch(osInfo.Version.Major)

    {
    case 3:
    Console.WriteLine("Windows NT 3.51");
    break;
    case 4:
    Console.WriteLine("Windows NT 4.0");
    break;
    case 5:
    if (osInfo.Version.Minor==0)
    Console.WriteLine("Windows 2000");
    else
    Console.WriteLine("Windows XP");
    break;
    }break;
    }
    }
    }
    }
  3. Ctrl+F5 키를 눌러 응용 프로그램을 실행합니다. Windows 버전이 콘솔 창에 나타나는 것을 확인할 수 있습니다.