最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析C#中用Process類終止進程,執(zhí)行命令的深入分析

 更新時間:2013年05月18日 11:20:14   投稿:jingxian  
本篇文章是對C#中用Process類終止進程,執(zhí)行命令進行了詳細的分析介紹,需要的朋友參考下

c#之process類相關整理
一、根據(jù)進程名獲取進程的用戶名?
需要添加對 System.Management.dll 的引用

復制代碼 代碼如下:

using System.Diagnostics;
using System.Management;
static void Main(string[] args)
{
foreach (Process p in Process.GetProcesses())
{
Console.Write(p.ProcessName);
Console.Write("----");
Console.WriteLine(GetProcessUserName(p.Id));
}
Console.ReadKey();
}
private static string GetProcessUserName(int pID)
{
string text1 = null;
SelectQuery query1 = new SelectQuery("Select * from Win32_Process WHERE processID=" + pID);
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);
try
{
foreach (ManagementObject disk in searcher1.Get())
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
inPar = disk.GetMethodParameters("GetOwner");
outPar = disk.InvokeMethod("GetOwner", inPar, null);
text1 = outPar["User"].ToString();
break;
}
}
catch
{
text1 = "SYSTEM";
}
return text1;
}

進程名 是 p.ProcessName
二、獲取進程
using System.Diagnostics;
【注】System.Diagnostics 命名空間提供特定的類,使您能夠與系統(tǒng)進程、事件日志和性能計數(shù)器進行交互。
復制代碼 代碼如下:

string str = "";
Process[] processes;
//Get the list of current active processes.
processes = System.Diagnostics.Process.GetProcesses();
//Grab some basic information for each process.
Process process;
for(int i = 0;i<processes.Length-1;i++)
{
process = processes[i];
str = str + Convert.ToString(process.Id) + " : " +
process.ProcessName + "\r\n";
}
System.Windows.Forms.MessageBox.Show(str);
txtProcessID.Text = processes[0].Id.ToString();
//顯示進程相關信息
string s = "";
System.Int32 processid;
Process process;
processid = Int32.Parse(txtProcessID.Text);
process = System.Diagnostics.Process.GetProcessById(processid);
s = s + "該進程的總體優(yōu)先級類別:" + Convert.ToString(process.PriorityClass) + " \r\n";
s = s + "由該進程打開的句柄數(shù):" + process.HandleCount + "\r\n";
s = s + "該進程的主窗口標題:" + process.MainWindowTitle + "\r\n";
s = s + " 該進程允許的最小工作集大小:" + process.MinWorkingSet.ToString() + " \r\n";
s = s + "該進程允許的最大工作集大小:" + process.MaxWorkingSet.ToString() + " \r\n";
s = s + "該進程的分頁內(nèi)存大小:" + process.PagedMemorySize + "\r\n";
s = s + "該進程的峰值分頁內(nèi)存大小:" + process.PeakPagedMemorySize + "\r\n";
System.Windows.Forms.MessageBox.Show(s);
}
catch
{
System.Windows.Forms.MessageBox.Show("不合法的進程ID!");
}

【注】Int32 值類型表示值介于-2,147,483,648 到+2,147,483,647 之間的有符號整數(shù)。
Int32 提供了一些方法,來比較該類型的實例、將實例的值轉(zhuǎn)換為它的String 表示形式以及將數(shù)字的String 表示形式轉(zhuǎn)換為該類型的實例。
有關格式規(guī)范代碼如何控制值類型的String 表示形式的信息,請參閱格式設置概述。
此類型實現(xiàn)接口IComparable、IFormattable 和IConvertible。使用Convert 類進行轉(zhuǎn)換,而不是使用此類型的IConvertible 顯式接口成員實現(xiàn)。
值得一提的是,Process 類具有很多成員變量,這些成員變量可以獲得進程的幾乎每一個細節(jié)。上面的例子中只是簡單地選擇了幾個成員加以演示。如果開發(fā)中有需要,可以參考MSDN Library,查詢Process類成員以獲得更詳細的信息,這里就不一一列出了。
三、終止進程
復制代碼 代碼如下:

private void button2_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
try
{
string proName = listView1.SelectedItems[0].Text;
Process[] p = Process.GetProcessesByName(proName);
p[0].Kill();
MessageBox.Show("進程關閉成功!");
GetProcess();
}
catch
{
MessageBox.Show("無法關閉此進程!");
}
}
else
{
MessageBox.Show("請選擇要終止的進程!");
}
}

四、C#中利用process類調(diào)用外部程序以及執(zhí)行dos命令
復制代碼 代碼如下:

private string RunCmd(string command)
{
//實例一個Process類,啟動一個進程
Process p = new Process();
//Process類有一個StartInfo屬性
//設定程序名
p.StartInfo.FileName = "cmd.exe";
//設定程式執(zhí)行參數(shù)
p.StartInfo.Arguments = "/c " + command;
//關閉Shell的使用
p.StartInfo.UseShellExecute = false;
//重定向標準輸入
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
//重定向錯誤輸出
p.StartInfo.RedirectStandardError = true;
//設置不顯示窗口
p.StartInfo.CreateNoWindow = true;
//啟動
p.Start();
//也可以用這種方式輸入要執(zhí)行的命令
//不過要記得加上Exit要不然下一行程式執(zhí)行的時候會當機
//p.StandardInput.WriteLine(command);
//p.StandardInput.WriteLine("exit");
//從輸出流取得命令執(zhí)行結(jié)果
return p.StandardOutput.ReadToEnd();
}

相關文章

  • C#使用HttpClient的正確方式你了解嗎

    C#使用HttpClient的正確方式你了解嗎

    在微服務架構(gòu)體系中經(jīng)常需要向特定?URL?地址發(fā)送?Http?請求操作,在?.net?core?中?httpClient?使用不當會造成災難性的問題,這篇文章主要來分享?.net?core?中通過?IHttpClientFactory?工廠來使用?HttpClient?的正確打開方式
    2021-11-11
  • 自定義WPF分頁控件的全過程記錄

    自定義WPF分頁控件的全過程記錄

    接觸WPF也有一段時間了,最近遇到了一個自定義分頁控件的功能,感覺可以分享下面,所以這篇文章主要介紹了自定義WPF分頁控件的相關資料,需要的朋友可以參考下
    2021-05-05
  • UnityUI中繪制線狀統(tǒng)計圖

    UnityUI中繪制線狀統(tǒng)計圖

    這篇文章介紹了UnityUI中繪制線狀統(tǒng)計圖的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#自定義實現(xiàn)多程序共享內(nèi)存空間

    C#自定義實現(xiàn)多程序共享內(nèi)存空間

    這篇文章主要為大家詳細介紹了C#如何自定義實現(xiàn)多程序共享內(nèi)存空間,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-10-10
  • c#菜單動態(tài)合并的實現(xiàn)方法

    c#菜單動態(tài)合并的實現(xiàn)方法

    這篇文章主要介紹了c#菜單動態(tài)合并的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • c#實現(xiàn)漢諾塔問題示例

    c#實現(xiàn)漢諾塔問題示例

    這篇文章主要介紹了c#實現(xiàn)漢諾塔問題示例,需要的朋友可以參考下
    2014-04-04
  • 基于C#調(diào)用OCX控件的常用方法(推薦)

    基于C#調(diào)用OCX控件的常用方法(推薦)

    下面小編就為大家分享一篇基于C#調(diào)用OCX控件的常用方法推薦,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#創(chuàng)建Windows Service(Windows 服務)的方法步驟

    C#創(chuàng)建Windows Service(Windows 服務)的方法步驟

    本文介紹了如何用C#創(chuàng)建、安裝、啟動、監(jiān)控、卸載簡單的Windows Service 的內(nèi)容步驟和注意事項,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • C#如何綁定多個按鈕到同一個事件

    C#如何綁定多個按鈕到同一個事件

    這篇文章主要介紹了C#如何綁定多個按鈕到同一個事件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • c# 網(wǎng)絡編程之tcp

    c# 網(wǎng)絡編程之tcp

    這篇文章主要介紹了c# 網(wǎng)絡編程之tcp的的相關資料,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-02-02

最新評論

盖州市| 宕昌县| 邻水| 策勒县| 长兴县| 边坝县| 农安县| 兰考县| 黄大仙区| 库伦旗| 南城县| 钟山县| 延川县| 和静县| 高陵县| 林西县| 府谷县| 巩留县| 田东县| 天长市| 乡城县| 蕲春县| 卓资县| 苗栗县| 腾冲县| 江津市| 交口县| 郁南县| 呼和浩特市| 黄石市| 改则县| 遂川县| 阿鲁科尔沁旗| 新源县| 铜陵市| 平乡县| 长丰县| 图木舒克市| 大余县| 威信县| 曲靖市|