鱼C论坛

 找回密码
 立即注册
查看: 1887|回复: 0

[技术交流] (原创)api枚举进程杀进程实例

[复制链接]
发表于 2014-3-24 19:45:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. // 杀进程实例-用到枚举进程
  2. #include "stdafx.h"
  3. #include <windows.h>
  4. #include <tlhelp32.h>//声明快照函数的头文件
  5. DWORD GetProcessIDByName( LPSTR pszProcName )
  6. {
  7. //创建当前所有进程的快照
  8. HANDLE hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, NULL );
  9. if(hProcessSnap == INVALID_HANDLE_VALUE)
  10. {
  11. printf("CreateToolhelp32Snapshot调用失败");
  12. return -1;
  13. }
  14. //枚举所有进程并获取进程名和ID
  15. PROCESSENTRY32 pe32;
  16. pe32.dwSize = sizeof(pe32);
  17. //判断取第一条进程信息是否成功
  18. BOOL bYesOrNo = Process32First( hProcessSnap,&pe32 );
  19. while ( bYesOrNo )
  20. {
  21. printf("进程名:%s\n", pe32.szExeFile );
  22. printf("进程ID:%d\n",pe32.th32ProcessID);
  23. if ( strcmp( pszProcName, pe32.szExeFile ) == 0 )
  24. {
  25. printf( "获取%s进程ID成功!\t", pszProcName );
  26. printf( "ID=%d\n", pe32.th32ProcessID );
  27. CloseHandle(hProcessSnap);
  28. return pe32.th32ProcessID;
  29. }
  30. bYesOrNo = Process32Next( hProcessSnap, &pe32 );
  31. }
  32. CloseHandle(hProcessSnap);
  33. printf("枚举进程失败,你指定的进程不存在!\n");
  34. return 0;
  35. }
  36. void StopProcessByID( DWORD nProcessID )
  37. {
  38. //通过PID或传入的进程ID拿到进程的句柄
  39. HANDLE hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, nProcessID );
  40. //通过进程句柄结束指定进程
  41. int nFlag = TerminateProcess( hProc, 0 );
  42. if ( 0 != nFlag)
  43. {
  44. printf( "指定进程已结束\n", nProcessID );
  45. }
  46. else
  47. {
  48. printf( "结否指定进程失败或其可能不存在!\n", nProcessID );
  49. }

  50. }
  51. int main(int argc, char* argv[])
  52. {
  53. //通过进程名取进程ID
  54. DWORD nID = GetProcessIDByName("calc.exe");
  55. //通过进程ID结束指定进程
  56. StopProcessByID( nID );
  57. return 0;
  58. }

复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 17:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表