첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

▶ PerformanceCounter 클래스 : 프로세스명으로 인스턴스명 딕셔너리 구하기 예제

using System;
using System.Collections.Generic;

Dictionary<int, string> dictionary = GetInstanceNameDictionary("notepad");

foreach(KeyValuePair<int, string> keyValuePair in dictionary)
{
    int    processID    = keyValuePair.Key;
    string instanceName = keyValuePair.Value;

    Console.WriteLine("프로세스 ID : {0}, 인스턴스명 : {1}", processID, instanceName);
}

 

728x90

 

▶ PerformanceCounter 클래스 : 프로세스명으로 인스턴스명 딕셔너리 구하기

using System.Collections.Generic;
using System.Diagnostics;

#region 인스턴스명 딕셔너리 구하기 - GetInstanceNameDictionary(processName)

/// <summary>
/// 인스턴스명 딕셔너리 구하기
/// </summary>
/// <param name="processName">프로세스명</param>
/// <returns>인스턴스명 딕셔너리</returns>
public Dictionary<int, string> GetInstanceNameDictionary(string processName)
{
    Dictionary<int, string> dictionary = new Dictionary<int, string>();
            
    PerformanceCounterCategory category = new PerformanceCounterCategory("Process");

    string[] instanceNameArray = category.GetInstanceNames();

    foreach(string instanceName in instanceNameArray)
    {
        if(instanceName.StartsWith(processName))
        {
            using(PerformanceCounter counter = new PerformanceCounter("Process", "ID Process", instanceName, true))
            {
                int processID = (int)counter.RawValue;

                dictionary.Add(processID, instanceName);
            }
        }
    }

    return dictionary;
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요