網(wǎng)站首頁 編程語言 正文
一、概述
一個(gè)Process組件提供了在計(jì)算機(jī)運(yùn)行進(jìn)程的訪問權(quán)限。 進(jìn)程,在最簡(jiǎn)單的術(shù)語中,是正在運(yùn)行的應(yīng)用。提供對(duì)本地和遠(yuǎn)程進(jìn)程的訪問權(quán)限并使你能夠啟動(dòng)和停止本地系統(tǒng)進(jìn)程。
屬性
- Id??? 獲取關(guān)聯(lián)進(jìn)程的唯一標(biāo)識(shí)符。
- ProcessName??? 獲取該進(jìn)程的名稱。
- MachineName??? 獲取關(guān)聯(lián)進(jìn)程正在其上運(yùn)行的計(jì)算機(jī)的名稱。
- SessionId??? 獲取關(guān)聯(lián)進(jìn)程的終端服務(wù)會(huì)話標(biāo)識(shí)符。
- StandardError??? 獲取用于讀取應(yīng)用程序錯(cuò)誤輸出的流。
- StandardInput??? 獲取用于寫入應(yīng)用程序輸入的流。
- StandardOutput??? 獲取用于讀取應(yīng)用程序文本輸出的流。
- StartInfo??? 獲取或設(shè)置要傳遞給 Process 的 Start() 方法的屬性。
- StartTime??? 獲取關(guān)聯(lián)進(jìn)程啟動(dòng)的時(shí)間。
- Threads??? 獲取在關(guān)聯(lián)進(jìn)程中運(yùn)行的一組線程。
- Handle??? 獲取關(guān)聯(lián)進(jìn)程的本機(jī)句柄。
- MainWindowHandle??? 獲取關(guān)聯(lián)進(jìn)程主窗口的窗口句柄。
- MainWindowTitle??? 獲取進(jìn)程的主窗口標(biāo)題。???
- MainModule??? 獲取關(guān)聯(lián)進(jìn)程的主模塊。
- Modules??? 獲取已由關(guān)聯(lián)進(jìn)程加載的模塊。
方法
- GetCurrentProcess()??? 獲取新的 Process 組件并將其與當(dāng)前活動(dòng)的進(jìn)程關(guān)聯(lián)。
- GetProcessById(Int32)??? 返回新的 Process 組件(給定本地計(jì)算機(jī)上某個(gè)進(jìn)程的標(biāo)識(shí)符)。
- GetProcesses()??? 為本地計(jì)算機(jī)上的每個(gè)進(jìn)程資源創(chuàng)建一個(gè)新的 Process 組件。
- GetProcessesByName(String)??? 創(chuàng)建新的 Process 組件的數(shù)組,并將它們與本地計(jì)算機(jī)上共享指定的進(jìn)程名稱的所有進(jìn)程資源關(guān)聯(lián)。
- Kill()??? 立即停止關(guān)聯(lián)的進(jìn)程。
- Start()??? 啟動(dòng)(或重用)此 Process 組件的 StartInfo 屬性指定的進(jìn)程資源,并將其與該組件關(guān)聯(lián)。
- WaitForExit(Int32)???????? 指示 Process 組件在指定的毫秒數(shù)內(nèi)等待關(guān)聯(lián)進(jìn)程退出。
二、使用方法
1、建立和銷毀進(jìn)程 System.Diagnosties
System.Diagnostics.Process p=Process.Start("notepad.exe","File.txt");
Thread.Sleep(2000);
p.Kill();
2、后臺(tái)運(yùn)行進(jìn)程:
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe");
psi.Arguments = @"/c copy c:\1.txt lpt1";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;//默認(rèn)為true, 使用外殼程序啟動(dòng)進(jìn)程。否則,直接從可執(zhí)行文件創(chuàng)建進(jìn)程。
Process p = Process.Start(psi);
if (!p.WaitForExit(1000 * 7))//啟動(dòng)外部程序,等待其退出
{
p.Kill();
}
p.Close();
或者
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe");//FileName
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;//將此屬性設(shè)置為false,就能重定向進(jìn)程。。。
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、啟動(dòng)外部程序
System.Diagnostics.Process.Start("explorer.exe", @"c:/"); //用資源管理器打開C:/
System.Diagnostics.Process.Start("rundll32.exe", @"shell32.dll,Control_RunDLL appwiz.cpl,,0");//打開“添加或刪除程序”的面板:
4、列舉計(jì)算機(jī)中運(yùn)行中的進(jìn)程
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、獲取進(jìn)程中的多個(gè)模塊
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));
}
原文鏈接:https://www.cnblogs.com/springsnow/p/11268396.html
相關(guān)推薦
- 2022-05-08 jquery實(shí)現(xiàn)淘寶詳情頁選擇套餐_jquery
- 2022-06-29 Oracle數(shù)據(jù)庫之PL/SQL使用流程控制語句_oracle
- 2022-07-27 詳解Python中Addict模塊的使用方法_python
- 2022-05-24 python使用torch隨機(jī)初始化參數(shù)_python
- 2022-07-26 在Pycharm set ops_config=local之后,直接echo %ops_config
- 2022-11-03 C/C++預(yù)處理淺析使用形式_C 語言
- 2022-12-23 C語言中scanf的用法舉例_C 語言
- 2022-11-17 使用flutter的showModalBottomSheet遇到的坑及解決_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支