如何通过目标文件名查询进程并干掉它? 比如我只知道用户打开了"test.txt"文件,但不知道是word,wordpad还是notepad,如何找到这个进程,并且强制关掉它?给出全部源码的另给200分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 word,wordpad还是notepad Process[] curProcesses = Process.GetProcesses();foreach (Process pro in curProcesses){ if ((pro.ProcessName == "word")||(pro.ProcessName == "wordpad")||(pro.ProcessName == "notepad")) { pro.Kill (); }} 你这样会杀掉所有word或者是Nodepad的进程哦 Process[] curProcesses = Process.GetProcesses();foreach (Process pro in curProcesses){ if ((pro.ProcessName == "word")||(pro.ProcessName == "wordpad")||(pro.ProcessName == "notepad") && pro.StartInfo.FileName.IndexOf("test.txt")>-1 ) { pro.Kill (); }} 哈哈,那还不简单。// ProcessLookup.cpp// Author by Yzl#include < iostream>#using < mscorlib.dll>#using < System.dll>#using < System.Management.dll>using namespace System;using namespace System::Management;using namespace std;#pragma managedint main()...{ ManagementObject *xdictObject = NULL; ManagementClass *processClass = new ManagementClass(S"Win32_Process"); ManagementObjectCollection* processCollection = processClass->GetInstances(); ManagementObjectCollection::ManagementObjectEnumerator* processEnumerator = processCollection->GetEnumerator(); while (processEnumerator->MoveNext()) ...{ ManagementObject *mObject = dynamic_cast(processEnumerator->Current); // 罗列当前进程信息 Console::WriteLine("{0}\t{1}",mObject->get_Item(S"Name")->ToString(), mObject->get_Item(S"ProcessId")->ToString()); int iFound = String::Compare(mObject->get_Item(S"Name")->ToString(),S"xdict.exe"); if (!iFound) xdictObject = mObject; } // 关闭金山词霸 if (xdictObject == 0) ...{ cout << "未找到该进程" << endl; return 0; } //Object *args __gc[] = new Object *__gc[]{__box(0)}; Object *o = xdictObject->InvokeMethod("Terminate",0); int iRet = Int32::Parse(o->ToString()); switch(iRet) ...{ case 0: cout << "金山词霸正常关闭" << endl;break; case 2: cout << "访问拒绝" << endl;break; case 3: cout << "权限不足" << endl;break; case 8: cout << "未知错误" << endl;break; case 9: cout << "路径未找到" << endl;break; case 21: cout << "无效参数" << endl;break; }}参考:http://blog.csdn.net/yuzl32/archive/2007/03/13/1528276.aspx 来个cs版本的参阅;http://blog.csdn.net/yuzl32/archive/2007/03/12/1527384.aspx 要求精确性的话,可以针对它的路径来确定.具体参阅Win32_Process.绝对可以满足你的要求. 字符串匹配问题 vs2005自定义安装部署 页面根据分辨率变化 顶级菜鸟问题,哪位行行好帮我一下子阿 ==================c# treeview中,如何知道我点的+是哪个node?=================== License如何编写的问题 C#项目打包问题(添加文件) C#中判断text的值不是浮点数这个if怎么写? 一个界面效果的实现,请各位大虾指点下! 急求解决webservice身份验证问题!在线等待 用SqlHelper类为什么返回不了值呢? 有用vista的吗,vista下c#的速度问题解决了吗
foreach (Process pro in curProcesses)
{
if ((pro.ProcessName == "word")||(pro.ProcessName == "wordpad")||(pro.ProcessName == "notepad"))
{
pro.Kill ();
}
}
foreach (Process pro in curProcesses)
{
if ((pro.ProcessName == "word")||(pro.ProcessName == "wordpad")||(pro.ProcessName == "notepad") && pro.StartInfo.FileName.IndexOf("test.txt")>-1 )
{
pro.Kill ();
}
}
// ProcessLookup.cpp
// Author by Yzl#include < iostream>
#using < mscorlib.dll>
#using < System.dll>
#using < System.Management.dll>
using namespace System;
using namespace System::Management;
using namespace std;#pragma managed
int main()
...{
ManagementObject *xdictObject = NULL;
ManagementClass *processClass = new ManagementClass(S"Win32_Process");
ManagementObjectCollection* processCollection = processClass->GetInstances();
ManagementObjectCollection::ManagementObjectEnumerator* processEnumerator
= processCollection->GetEnumerator();
while (processEnumerator->MoveNext())
...{
ManagementObject *mObject = dynamic_cast(processEnumerator->Current);
// 罗列当前进程信息
Console::WriteLine("{0}\t{1}",mObject->get_Item(S"Name")->ToString(),
mObject->get_Item(S"ProcessId")->ToString());
int iFound = String::Compare(mObject->get_Item(S"Name")->ToString(),S"xdict.exe");
if (!iFound)
xdictObject = mObject;
}
// 关闭金山词霸
if (xdictObject == 0)
...{
cout << "未找到该进程" << endl;
return 0;
}
//Object *args __gc[] = new Object *__gc[]{__box(0)};
Object *o = xdictObject->InvokeMethod("Terminate",0);
int iRet = Int32::Parse(o->ToString());
switch(iRet)
...{
case 0: cout << "金山词霸正常关闭" << endl;break;
case 2: cout << "访问拒绝" << endl;break;
case 3: cout << "权限不足" << endl;break;
case 8: cout << "未知错误" << endl;break;
case 9: cout << "路径未找到" << endl;break;
case 21: cout << "无效参数" << endl;break;
}
}参考:http://blog.csdn.net/yuzl32/archive/2007/03/13/1528276.aspx