[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