1. 程式人生 > 其它 >C#操作程序教程與案例

C#操作程序教程與案例

技術標籤:C#語法與應用c#processing多程序

程序(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();
        }