码迷,mamicode.com
首页 > Windows程序 > 详细

31 windows_31_ProcBase 进程基础

时间:2016-06-10 13:44:07      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

windows_31_ProcBase 进程基础


  1. // windows_31_ProcBase.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <windows.h>
  5. #include <psapi.h> //另一块进程操作API
  6. void ProcModule( )
  7. {
  8. printf( "All Modules:\n" );
  9. //当前进程句柄
  10. HANDLE hProc = GetCurrentProcess( );
  11. //获取模块句柄
  12. HMODULE hModules[256] = { 0 };
  13. DWORD nNeed = 0;
  14. EnumProcessModules( hProc,hModules,256,&nNeed);
  15. //计算获取到句柄数量
  16. DWORD nCount = nNeed / sizeof( HMODULE );
  17. //打印句柄
  18. for (DWORD nIndex = 0; nIndex < nCount;nIndex++)
  19. {
  20. //获取各模块所对应的文件名和路径
  21. CHAR szPath[MAX_PATH] = { 0 };
  22. GetModuleFileNameEx( hProc, hModules[nIndex], szPath, MAX_PATH );
  23. printf( "\t%d: %p, %s\n", nIndex + 1, hModules[nIndex] ,szPath);
  24. }
  25. }
  26. void ProcInfo( )
  27. {
  28. //获取进程ID
  29. DWORD nID = GetCurrentProcessId( );
  30. //获取进程句柄(-1,伪句柄)
  31. HANDLE hProc = GetCurrentProcess( );
  32. printf( "Process ID: %d\n", nID );
  33. printf( "Process Handle: %p\n", hProc );
  34. //根据进程ID获取进程实际句柄
  35. hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, nID );
  36. printf( "Process Handle: %p\n", hProc );
  37. }
  38. int _tmain(int argc, _TCHAR* argv[])
  39. {
  40. ProcInfo( );
  41. ProcModule( );
  42. return 0;
  43. }





31 windows_31_ProcBase 进程基础

标签:

原文地址:http://www.cnblogs.com/nfking/p/5573564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!