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

a1315218888 2007-12-04 03:48:54
怎么通过一个文件的路径,来结束这进程???
例如;当输入 c:\abc.exe 这个路径名,就执行结束abc.exe进程
...全文
82 点赞 收藏 8
写回复
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
只可以通过进程的标题来确定结束进程,你要代码的话就留言一下..............
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7452

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告