C#操作程序教程與案例
阿新 • • 發佈:2021-01-21
程序(Process) ['prɑses] 是Window系統中的一個基本概念,它包含著一個執行程式所需的資源。
Process是System.Diagnostics名稱空間提供的
1、檢視/獲取 程序
GetProcesses:獲取所有程序,返回一個Process陣列。
GetProcessById:根據指定ProcessId返回一個Processd物件
//獲得當前程式中所以正在執行的程序的程式
Process[] pros = Process.GetProcesses();
foreach (var item in pros)
{
Console.WriteLine(item);
}
Console.ReadLine();
private void uiButton2_Click(object sender, EventArgs e)
{
ListViewItem Item;
this.listView1.View = View.Details;
this.listView1.FullRowSelect = true;
this.listView1.MultiSelect = false;
this.listView1.Columns.Add("程序名稱");
this.listView1.Columns.Add("PID");
this.listView1.Columns.Add("啟動時間");
this.listView1.Columns.Add("啟動路徑");
System. Diagnostics.Process[] pros = System.Diagnostics.Process.GetProcesses();
foreach (var p in pros)
{
try
{
Item = this.listView1.Items.Add(p.ProcessName);
Item.SubItems.Add(Convert.ToString(p.Id));
Item.SubItems.Add(Convert.ToString(p.StartTime));
Item.SubItems.Add(p.MainModule.FileName);
}
catch (Exception)
{
continue;
}
}
}
2、結束程序
Kill方法
private void uiButton3_Click(object sender, EventArgs e)
{
//System.Diagnostics.Process p_Tim;
//p_Tim = System.Diagnostics.Process.GetProcessById(processId: 10188);
System.Diagnostics.Process p_Notepad;
p_Notepad = System.Diagnostics.Process.GetProcessesByName(processName: "notepad")[0];
p_Notepad.Kill();
}
裡面使用到 GetProcessById()方法 與 GetProcessesByName()方法
3、等待程序結束
private void uiButton4_Click(object sender, EventArgs e)
{
System.Diagnostics.Process p_Notepad;
p_Notepad = System.Diagnostics.Process.GetProcessesByName(processName: "notepad")[0];
p_Notepad.EnableRaisingEvents = true;
p_Notepad.WaitForExit();
p_Notepad.Close();
MessageBox.Show("記事本程序已被結束");
}
手動關閉記事本會彈出訊息
4、建立程序
private void uiButton1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process process=new System.Diagnostics.Process();
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.Arguments = @"C:\Users\LLT\Desktop\新建文字文件 (2).txt";
process.Start();
}
開啟指定路徑檔案
private void uiButton5_Click(object sender, EventArgs e)
{
//開啟計算器
//System.Diagnostics.Process.Start("calc");
//開啟畫圖
//System.Diagnostics.Process.Start("mspaint");
//開啟記事本
//System.Diagnostics.Process.Start("notepad");
//開啟瀏覽器
//System.Diagnostics.Process.Start("iexplore","http://www.baidu.com");
//開啟指定檔案或資料夾
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\LLT\Desktop\1.png");
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = psi;
p.Start();
}