C#

[C#]C#코드를 이용하여 운영체제와 컴퓨터 정보 확인

데브프로그라 2024. 2. 24. 22:59
반응형

1. 아래의 코드는 C#을 사용하여 현재 실행 중인 운영 체제와 컴퓨터의 정보를 검색하는 방법을 보여줍니다.

Visual Studio에서 프로젝트를 생성하여 아래의 코드를 복사하여 실행합니다.

using System;
using System.Management;

class Program
{
    static void Main(string[] args)
    {
        // 운영체제 정보 가져오기
        OperatingSystem os = Environment.OSVersion;
        Console.WriteLine("Operating system: {0}", os);

        // 컴퓨터 정보 가져오기
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem");
        foreach (ManagementObject managementObject in searcher.Get())
        {
            Console.WriteLine("Manufacturer: {0}", managementObject["Manufacturer"]);
            Console.WriteLine("Model: {0}", managementObject["Model"]);
            Console.WriteLine("Total physical memory: {0} bytes", managementObject["TotalPhysicalMemory"]);
        }
        Console.ReadLine();
    }
}


이 코드는 System.Management 네임스페이스를 사용하여 WMI(Windows Management Instrumentation)를 쿼리를 실행하여 정보를 검색합니다. 

OperatingSystem 클래스는 Environment.OSVersion 속성을 통해 검색됩니다. 

Win32_ComputerSystem 클래스는 컴퓨터 정보를 검색하기 위해 ManagementObjectSearcher 클래스를 사용하여 쿼리를 실행합니다.

코드를 실행하면 다음과 같은 정보가 출력됩니다.
결과:
Operating system: Microsoft Windows NT 10.0.19042.0
Manufacturer: ACME
Model: ACME123
Total physical memory: 17179869184 bytes
참고: 출력된 내용은 실행 중인 컴퓨터의 정보에 따라 다를 수 있습니다.


2. 다음 코드는 C#을 사용하여 컴퓨터의 네트워크 기기 정보를 출력하는 방법을 보여줍니다.
Visual Studio에서 프로젝트를 생성하여 아래의 코드를 복사하여 실행합니다.


using System;
using System.Management;

class Program
{
    static void Main(string[] args)
    {
        // Define WMI query to retrieve device information
        string query = "SELECT * FROM Win32_PnPEntity";

        // Create object searcher with the query
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

        // Loop through each device and output its information
        foreach (ManagementObject device in searcher.Get())
        {
            Console.WriteLine("Name: {0}", device["Name"]);
            Console.WriteLine("Description: {0}", device["Description"]);
            Console.WriteLine("Manufacturer: {0}", device["Manufacturer"]);
            Console.WriteLine("Status: {0}", device["Status"]);
            Console.WriteLine();
        }
        Console.ReadLine();
    }
}
이 코드는 Win32_PnPEntity 클래스를 쿼리하여 각 기기의 정보를 출력합니다. ManagementObjectSearcher 클래스를 사용하여 SELECT 쿼리를 만들고, Get() 메서드를 호출하여 쿼리 결과를 가져옵니다. foreach 루프를 사용하여 결과 집합에서 각 항목을 반복하여 출력합니다.

코드를 실행하면 다음과 같은 출력이 생성됩니다.
결과:
Name: Intel(R) 82579LM Gigabit Network Connection
Description: Intel(R) 82579LM Gigabit Network Connection
Manufacturer: Intel
Status: OK

Name: Microsoft Wi-Fi Direct Virtual Adapter
Description: Microsoft Wi-Fi Direct Virtual Adapter
Manufacturer: Microsoft
Status: OK

반응형