[C#.NET][VB.NET] Process 類別 / 如何 列舉執行中的程式
記得曾經用過WMI來列舉執行中的程式[VB6] 利用WMI列舉目前正在執行中的程式,而.NET Framework提供的 System.Diagnostics 命名空間的 Process 類別中的GetProcess方法,也能達到相同的功能。
Process 類別:提供對本機和遠端處理序 (Process) 的存取,並讓您能夠啟動和停止本機系統處理序。
1.使用GetProcesses 方法會傳回Process陣列
2.使用GetProcessById 取得系統上維一的ID並操作
3.Kill方法會不顧一切的終止程式,已被我註解有興趣的可以解開玩看看,要終止(Terminate)時請小心以免系統掛掉。
如何列舉執行中的應用程式
//1.引用Process類別中的GetProcesses方法,取得執行中的程式    foreach (Process p in Process.GetProcesses())
{        //引用ListViewItem類別        ListViewItem item = new ListViewItem();         //取得Process內的屬性後,加入至ListViewItem類別    item.Text = p.ProcessName;
item.SubItems.Add(p.Id.ToString());
    item.SubItems.Add((p.PrivateMemorySize64 / 1024) + " Kbyte");        item.SubItems.Add((p.VirtualMemorySize / 1024) + " Kbyte");        //加入控制項    ListView1.Items.Add(item);
}
如何取得應用程式ID,並終止
Process proc = Process.GetProcessById(Convert.ToInt32(ListView1.SelectedItems[0].SubItems[1].Text));
try    {         ////判斷執程式是否已中止        if (!proc.HasExited)        {            //關閉應用程式    proc.CloseMainWindow();
        //等待關閉    proc.WaitForExit();
        //釋放資源    proc.Close();
}
    else            MessageBox.Show("已結束");    }
catch    {        MessageBox.Show("無法結束!!");    }
如何呼叫外部執行檔
//ProcessStartInfo info = new ProcessStartInfo(@"C:\windows\system32\notepad.exe");    //Process.Start(info);    //呼叫外部程式    Process.Start(@"C:\windows\system32\notepad.exe");    //重繪    button1.PerformClick();
如何列出包含的模組
if (p.Length > 0) listBox1.Items.Clear();    {        try        {            //列出應用程式包含的模組    foreach (ProcessModule m in p[0].Modules)
        {    listBox1.Items.Add("ModuleName: " + m.ModuleName + "\t" + " , " + "FileName: " + m.FileName);
            //listBox1.Items.Add(m.FileVersionInfo);    }
}
    catch        {    }
}
範例下載:
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET