欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#操作windows系統(tǒng)進程的方法

 更新時間:2022年05月25日 09:35:11   作者:springsnow  
這篇文章介紹了C#操作windows系統(tǒng)進程的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、概述

一個Process組件提供了在計算機運行進程的訪問權限。 進程,在最簡單的術語中,是正在運行的應用。提供對本地和遠程進程的訪問權限并使你能夠啟動和停止本地系統(tǒng)進程。

屬性

  • Id    獲取關聯(lián)進程的唯一標識符。
  • ProcessName    獲取該進程的名稱。
  • MachineName    獲取關聯(lián)進程正在其上運行的計算機的名稱。
  • SessionId    獲取關聯(lián)進程的終端服務會話標識符。
  • StandardError    獲取用于讀取應用程序錯誤輸出的流。
  • StandardInput    獲取用于寫入應用程序輸入的流。
  • StandardOutput    獲取用于讀取應用程序文本輸出的流。
  • StartInfo    獲取或設置要傳遞給 Process 的 Start() 方法的屬性。
  • StartTime    獲取關聯(lián)進程啟動的時間。
  • Threads    獲取在關聯(lián)進程中運行的一組線程。
  • Handle    獲取關聯(lián)進程的本機句柄。
  • MainWindowHandle    獲取關聯(lián)進程主窗口的窗口句柄。
  • MainWindowTitle    獲取進程的主窗口標題。   
  • MainModule    獲取關聯(lián)進程的主模塊。
  • Modules    獲取已由關聯(lián)進程加載的模塊。

方法

  • GetCurrentProcess()    獲取新的 Process 組件并將其與當前活動的進程關聯(lián)。
  • GetProcessById(Int32)    返回新的 Process 組件(給定本地計算機上某個進程的標識符)。
  • GetProcesses()    為本地計算機上的每個進程資源創(chuàng)建一個新的 Process 組件。
  • GetProcessesByName(String)    創(chuàng)建新的 Process 組件的數(shù)組,并將它們與本地計算機上共享指定的進程名稱的所有進程資源關聯(lián)。
  • Kill()    立即停止關聯(lián)的進程。
  • Start()    啟動(或重用)此 Process 組件的 StartInfo 屬性指定的進程資源,并將其與該組件關聯(lián)。
  • WaitForExit(Int32)         指示 Process 組件在指定的毫秒數(shù)內等待關聯(lián)進程退出。

二、使用方法

1、建立和銷毀進程 System.Diagnosties

System.Diagnostics.Process p=Process.Start("notepad.exe","File.txt");
Thread.Sleep(2000);
p.Kill();

2、后臺運行進程:

ProcessStartInfo psi = new ProcessStartInfo("cmd.exe");
psi.Arguments = @"/c copy c:\1.txt lpt1";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;//默認為true, 使用外殼程序啟動進程。否則,直接從可執(zhí)行文件創(chuàng)建進程。
Process p = Process.Start(psi);
if (!p.WaitForExit(1000 * 7))//啟動外部程序,等待其退出
{
    p.Kill();
}
p.Close();

或者

ProcessStartInfo psi = new ProcessStartInfo("cmd.exe");//FileName
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;//將此屬性設置為false,就能重定向進程。。。
psi.UseShellExecute = false;//
Process p = Process.Start(psi);
StreamWriter sw = p.StandardInput;
StreamReader sr = p.StandardOutput;
sw.WriteLine(@"/c copy c:\1.txt lpt1");
sw.Close();
Console.Write(sr.ReadToEnd());
sr.Close();
p.Close();

3、啟動外部程序

System.Diagnostics.Process.Start("explorer.exe", @"c:/"); //用資源管理器打開C:/  
System.Diagnostics.Process.Start("rundll32.exe", @"shell32.dll,Control_RunDLL appwiz.cpl,,0");//打開“添加或刪除程序”的面板:

4、列舉計算機中運行中的進程

var pList = Process.GetProcesses().OrderBy(x => x.Id).Take(10);
foreach (var p in pList)
{
    Console.WriteLine(string.Format("ProcessID is {0} \t ProcessName is {1}", p.Id, p.ProcessName));
}

5、獲取進程中的多個模塊

var mList = Process.GetCurrentProcess().Modules;
foreach (ProcessModule m in mList)
{
    Console.WriteLine(string.Format("ModuleName is {0} \t ModuleURL  is {1} \t ModuleVersion is {2}", m.ModuleName, m.FileName, m.FileVersionInfo.FileVersion));
}

到此這篇關于C#操作windows系統(tǒng)進程的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論