[C#網路應用編程]1、對進程的操作

來源:互聯網
上載者:User

標籤:des   style   blog   io   ar   color   os   sp   for   

在.net中,Process類提供了對進程進行管理的各種方法。

一、擷取進程集合的方法:

Process[] myProcesses = Process.GetProcesses();  //擷取本機電腦所有進程

Process[] myProcesses = Process.GetProcesses(string ip);  //擷取遠端電腦所有進程

Process[] myProcesses = Process.GetProcessesByName(string name);  //根據名稱擷取本機電腦所有進程

Process[] myProcesses = Process.GetProcessesByName(string name, string ip);  //根據名稱擷取本機電腦所有進程

 

1. 對單個進程的一些屬性和方法 (假設Process aProcess=myProcesses[0]):1.1 aProcess.Modules 與該進程有關的一些資訊 (假設ProcessModuleCollection modules = aProcess.Modules)

每一個進程都包含這個屬性,但並不是每個進程的該屬性都能被擷取到

該集合的第一個成員等同於MainModule屬性

 

1.1.1 MainModule 該進程的主要模組 (假設ProcessModule aModule = aProcess.MainModule)

1.1.1.1 aModule.FileName  該進程的完整路徑

1.1.1.2 aModule.ModuleName 該進程模組的名稱

1.1.1.3 aModule.FileVersionInfo 該模組的版本資訊 (假設FileVersionInfo vInfo = aModule.FileVersionInfo)

1.1.1.3.1 FileVersionInfo.FileVersion 版本

1.1.1.3.2 FileVersionInfo.FileDescription 描述

1.1.1.3.3 FileVersionInfo.Language 語言

 

1.2 aProcess.StartTime  該進程的啟動時間1.3 aProcess.Id 該進程的id1.4 aProcess.ProcessName 該進程的名稱1.5 aProcess.WorkingSet64 該進程分配的實體記憶體 (單位位元組)1.6 aProcess.HasExited 返回一個bool值提示是否已停止運行  (必須是對一個已經啟動過的進程,如果是剛new出來還沒有執行Start()方法的,會卡在那一步無法繼續執行)1.7 aPocess.WaitForInputIdle() 等待新進程完成它的初始化並等待使用者輸入。

 

二、啟動與停止進程

首先建立一個Process執行個體,並設定相應的StartInfo屬性,然後調用該執行個體的Start()方法,當不希望該進程運行時,調用該執行個體的CloseMainWindow()或者Kill()方法停止該進程

Process p = new Process();p.StartInfo.FileName = "NotePad"; //要執行的檔案名稱p.StartInfo.Arguments = ""; //要傳的參數p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; //設定圖形介面開啟檔案(最大化);p.Start();p.WaitForInputIdle(); //等待進程啟動完成,確保後面可以擷取到相關資訊

Thread.Sleep(2000);
//當需要關閉時:p.Kill(); // p.CloseMainWindow();

關於兩個停止進程的方法:

如果是圖形介面的,調用CloseMainWindow(),放方法與單擊圖形介面的關閉按鈕效果相同,它可能會提示使用者是否需要儲存資料 (也可以調用Kill()直接退出)

如果沒有圖形介面,調用Kill(),該方法不會有任何提示,直接停止進程,此期間任何沒有儲存的資料都會丟失  (強行終止進程,該方法是非同步,因此需要調用該執行個體的WaitForExit()或者用HasExited屬性確認已經退出)

 

[C#網路應用編程]1、對進程的操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.