[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