반응형

* C# WMI 를 이용한 현재 실행 중인 프로세스 조회 (Process Search) 

- WMI 를 사용하기 위해 참조 -> System.Management dll 을 추가 -> 소스 코드 using System.Management

 

메인화면

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Management;

namespace CSharp_NowProcess
{
    public partial class Form1 : Form
    {

        string strWMIQry = "Select Name, ProcessID, ExecutablePath, WorkingSetSize From Win32_Process";

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //리스트뷰 아이템 초기화
            lv.Items.Clear();

            ManagementObjectSearcher oWMI = new ManagementObjectSearcher(new SelectQuery(strWMIQry));

            foreach (ManagementObject oItem in oWMI.Get())
            {
                try
                {
                    //리스트뷰에 디스플레이...
                    ListViewItem lvi = new ListViewItem();
					
                    //프로세스 이름
                    lvi.Text = oItem.GetPropertyValue("Name").ToString();
                    //프로세스 ID
                    lvi.SubItems.Add(oItem.GetPropertyValue("ProcessID").ToString());
                    //크기
                    lvi.SubItems.Add(string.Format("{0:00}", (double)int.Parse(oItem.GetPropertyValue("WorkingSetSize").ToString()) / 1024) + " KB");
                    //위치
                    lvi.SubItems.Add(oItem.GetPropertyValue("ExecutablePath").ToString());

                    lv.Items.Add(lvi);
                }
                catch (Exception)
                {
                }

            }


        }
    }
}

*예제 결과

 

결과화면

 

반응형

+ Recent posts