CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

急!!!!在线等待。。。。。请教怎么杀掉任务管理器里面的进程a(名字为xxx.exe)

楼主huhaha7171(虎虎)2005-10-22 17:32:25 在 VC/MFC / 进程/线程/DLL 提问

谢谢 问题点数: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

相关问题

  • 请问怎么保护任务管理器中的进程不被杀掉?
  • Win2000任务管理器中的结束进程是如何杀掉进程的?
  • xp资源管理器中exe文件的图标显示速度慢
  • 用C#判斷任務管理器->進程中是否己運行某個.exe
  • *****为什么经常程序关闭以后,在任务管理器的进程中还看得到??必须在任务管理器中杀掉进程才能重新编译?**
  • 资源管理器
  • WIN2000下,如何隐藏一个EXE文件的执行,使其不被任务管理器发现
  • 关于布局管理器
  • windows 资源管理器
  • 调出"设备管理器"

关键词

  • 进程
  • bmore
  • 句柄
  • hprocess
  • carray
  • hprocesssnap
  • 名字
  • terminateprocess
  • pe
  • xxx

得分解答快速导航

  • 帖主:huhaha7171
  • rageliu
  • gohappy_1999
  • yll1986
  • superfyt
  • oyljerry
  • gohappy_1999
  • alen_ghl
  • deading

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo