急!!!!在线等待。。。。。请教怎么杀掉任务管理器里面的进程a(名字为xxx.exe)
谢谢 问题点数:40、回复次数:10Top
1 楼huhaha7171(虎虎)回复于 2005-10-22 17:38:20 得分 0
只知道映像的名称为xxx.exe
不知道怎么得到它实际的hwnd
然后用TerminateProcess(hProcess, 0)关掉Top
2 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2005-10-22 18:09:01 得分 5
一般不建议用TerminateProcess()
它很大可能会使系统不稳定!再有就是不会释放资源
可以通过句柄发消息Top
3 楼gohappy_1999(碧水蓝天)回复于 2005-10-22 19:04:41 得分 5
枚举进程
根据进程名得到其HANDLE
TerminateProcessTop
4 楼yll1986(???)回复于 2005-10-22 22:35:19 得分 5
TerminateProcess()Top
5 楼superfyt(FYT)回复于 2005-10-23 05:09:50 得分 10
PROCESSENTRY32 pe32;
BOOL bMore;
HANDLE hProcessSnap;
HANDLE hProcess;
pe32.dwSize = sizeof(pe32);
hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
bMore = ::Process32First(hProcessSnap, &pe32);
while(bMore)
{
if(strcmp(pe32.szExeFile,"xxx.exe") == 0)
{
hProcess = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
if(hProcess != NULL)
::TerminateProcess(hProcess, 0);
::CloseHandle(hProcess);
}
bMore = ::Process32Next(hProcessSnap, &pe32);
}Top
6 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-10-23 11:09:38 得分 10
获得进程handle,然后发送WM_CLOSE让进程退出
不要用TerminateProcess以免造成资源泄漏Top
7 楼gohappy_1999(碧水蓝天)回复于 2005-10-23 12:43:44 得分 2
发消息WM_CLOSE不一定关得了Top
8 楼alen_ghl(东方求*)回复于 2005-10-24 11:17:42 得分 2
DESTROYTop
9 楼deading(Ben)回复于 2005-10-24 16:12:10 得分 1
得到进程句柄可以这么做.
CArray <C_Process, C_Process&> m_arProcess;
C_Process为自定义的存放进程信息的类.里面可放进程名字和PID和HANDLE
CreateToolhelp32Snapshot()
Process32First()
while(TRUE)
{
CArray.Add();
}
然后根据名字去查HANDLE...Top
10 楼deading(Ben)回复于 2005-10-24 16:13:52 得分 0
得到进程句柄可以这么做.
CArray <C_Process, C_Process&> m_arProcess;
C_Process为自定义的存放进程信息的类.里面可放进程名字和PID和HANDLE
CreateToolhelp32Snapshot()
Process32First()
while(TRUE)
{
CArray.Add();
}
然后根据名字去查HANDLE...Top




