怎么通过一个文件的路径,来结束这个进程???

a1315218888 2007-12-04 03:48:54
怎么通过一个文件的路径,来结束这进程???
例如;当输入 c:\abc.exe 这个路径名,就执行结束abc.exe进程
...全文
165 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
asa5880 2007-12-05
  • 打赏
  • 举报
回复
这是我以前用VC写的程序片断,不过没有取PATH,你自己再根据MODULE取就可以了,变通一下

//提升权限
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&hToken);
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);


//枚举并结束进程功能
PROCESSENTRY32 pinfo;
pinfo.dwSize=sizeof(PROCESSENTRY32);
CString str;
HANDLE hProcess=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
bool report=Process32First(hProcess,&pinfo);
while(report)
{
str.Format("%s",pinfo.szExeFile);
str.MakeUpper();
if(str == "note.exe")
{
HANDLE m=::OpenProcess(PROCESS_ALL_ACCESS,false,(DWORD)pinfo.th32ProcessID);
::TerminateProcess(m,1);
}
report=Process32Next(hProcess,&pinfo);
}
a1315218888 2007-12-05
  • 打赏
  • 举报
回复
水清无鱼: 可否给个代码例子?
asa5880 2007-12-05
  • 打赏
  • 举报
回复
笔误更正一下

枚举当前系统中进程PATH,如果等于当前Path就TerminateProcess

枚举方法很多(PSAPI,Toolhelp32等),不过首先提升令牌权限
asa5880 2007-12-05
  • 打赏
  • 举报
回复
枚举当前进程模块PATH,如果等于当前Path就TerminateProcess掉

枚举方法很多(PSAPI,Toolhelp32等),不过首先提升令牌权限
hd378 2007-12-05
  • 打赏
  • 举报
回复
如果输入c:\abc.exe只是结束c:\abc.exe这个文件对应的进程,而不是结束D:\abc.exe或者E:\abc.exe的话,我的思路是这样的:
遍历进程列表,找出所有进程,然后找出所有进程对应的可执行文件路径,然后判断这个路径是不是c:\abc.exe,如果是,就结束进程。
不过windows中好像没有给出进程求进程对应的可执行文件路径的函数,所以需要自己写一个
a1315218888 2007-12-05
  • 打赏
  • 举报
回复
怎么不见人了?
a1315218888 2007-12-04
  • 打赏
  • 举报
回复
代码发一下,我看看?
shiqiren 2007-12-04
  • 打赏
  • 举报
回复
只可以通过进程的标题来确定结束进程,你要代码的话就留言一下..............

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧