ProcessName属性获得的是文件名的前缀,即NotePad,不包含后面的.exe。
要获得更多的信息,需要取得Modules属性数组,但并不是每个进程都能获取Modules属性,所以必须要使用try..catch语句排除异常。该数组的第一个成员[ 0 ].FileName包含了执行程序的完整文件名,等同于ProcessModule;序号大于0的成员往往包含该程序调用的dll信息,得到的结果很有点像反木马程序。
Kill()方法用来杀进程,被杀的程序不会弹出类似保存文件的对话框,是个十足的冷血的快刀手。
StartInfo属性是用于启动新进程的,不适用于检索已运行的进程。
private void btnProcess_Click(object sender, System.EventArgs e)
{
System.Diagnostics.Process []myPs ;
myPs=System.Diagnostics.Process.GetProcesses();
this.richTextBox1.Clear();
foreach (System.Diagnostics.Process p in myPs)
{
if (p.Id!=0 )
{
string myS="进程名称"+p.ProcessName+" ID:"+p.Id.ToString();
try//由于进程不同,有的进程不包含Modules信息,所以要用try保护
{
if (p.Modules !=null)
if (p.Modules.Count>0)
{
System.Diagnostics.ProcessModule pm=p.Modules[0];
myS+="\n Modules[0].FileName:"+pm.FileName;
myS+="\n Modules[0].ModuleName:"+pm.ModuleName;
myS+="\n Modules[0].FileVersionInfo:\n"+pm.FileVersionInfo.ToString();
if (pm.FileName.ToLower()==this.textBox1.Text.Trim().ToLower())
p.Kill();
}
}
catch
{}
finally
{
this.richTextBox1.Text += myS+"\n==========================\n";
}
}
}
程序的执行结果片段:
进程名称SearchNet ID:3092
Modules[0].FileName:C:\Program Files\SearchNet\SearchNet.exe
Modules[0].ModuleName:SearchNet.exe
Modules[0].FileVersionInfo:
File: C:\Program Files\SearchNet\SearchNet.exe
InternalName: SearchNet
OriginalFilename:
FileVersion: 1, 0, 2, 4
FileDescription: IE地址栏搜索程序
Product: 地址栏搜索
ProductVersion: 1, 0, 2, 4
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language 中文(中国)
==========================
进程名称svchost ID:1700
Modules[0].FileName:C:\WINDOWS\system32\svchost.exe
Modules[0].ModuleName:svchost.exe
Modules[0].FileVersionInfo:
File: C:\WINDOWS\system32\svchost.exe
InternalName: svchost.exe
OriginalFilename: svchost.exe
FileVersion: 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
FileDescription: Generic Host Process for Win32 Services
Product: Microsoft® Windows® Operating System
ProductVersion: 5.1.2600.2180
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language 英语(美国)
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!