展开全部
1楼的仁兄对API根本不了解,不懂就不要乱说哦~ API中是有终止进程的函数的,而且还不止一个,方法也很多。最简单的方法就是调用TerminateProcess函数。其他方法:比如强制卸载进程句柄、进程内存添添零、甚至可以注入进去,从内部生成一个异常,从而把进程挂掉…… API都实现不了、批处理怎么能实现?!明明是在开玩笑嘛!批处理内部本质上也要调用API的!
我十分赞同2楼仁兄的的代码,巧妙简洁。不过,如果给taskkill加参数/f会更好。呵呵~
下面是我的方法:(全部用API来实现,好让1楼的兄弟看看)
首先要获取QQ进程的PID,可以在任务管理器中看到,也可以用tasklist命令来得到。然后调用OpenProcess,最后一个参数添PID的值,该函数返回进程句柄。然后用返回的句柄作为参数来调用TerminateProcess就可以了。
具体代码如下:
int nPID = GetDlgItemInt(IDC_EDT_PID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, nPID);
TerminateProcess(hProcess, 0);
为了简单,我省略了出错处理代码,实际使用应加入错误处理程序。
上面的代码即可以用在MFC中,也可以用在SDK程序中。
我十分赞同2楼仁兄的的代码,巧妙简洁。不过,如果给taskkill加参数/f会更好。呵呵~
下面是我的方法:(全部用API来实现,好让1楼的兄弟看看)
首先要获取QQ进程的PID,可以在任务管理器中看到,也可以用tasklist命令来得到。然后调用OpenProcess,最后一个参数添PID的值,该函数返回进程句柄。然后用返回的句柄作为参数来调用TerminateProcess就可以了。
具体代码如下:
int nPID = GetDlgItemInt(IDC_EDT_PID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, nPID);
TerminateProcess(hProcess, 0);
为了简单,我省略了出错处理代码,实际使用应加入错误处理程序。
上面的代码即可以用在MFC中,也可以用在SDK程序中。
展开全部
提升当前进程的权限EnableDebugPrivilege(),然后枚举进程,再终止进程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-03-12
展开全部
简单的方法就是通过system()函数执行系统命令taskkill来结束程序:
#incldue <iostream>
using std::system;
int main(void)
{
system("taskkill /im qq.exe");
return 0;
}
#incldue <iostream>
using std::system;
int main(void)
{
system("taskkill /im qq.exe");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是不能实现的,windows API中没有关闭其他程序的函数
只能通过批处理实现
只能通过批处理实现
参考资料: http://zhidao.baidu.com/question/135226704.html?si=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询