您的位置:首页 > 其它

31 windows_31_ProcBase 进程基础

2016-06-10 13:07 316 查看

windows_31_ProcBase 进程基础

// windows_31_ProcBase.cpp : 定义控制台应用程序的入口点。

//


#include "stdafx.h"

#include <windows.h>

#include <psapi.h> //另一块进程操作API


void ProcModule( )

{

printf( "All Modules:\n" );

//当前进程句柄

HANDLE hProc = GetCurrentProcess( );

//获取模块句柄

HMODULE hModules[256] = { 0 };

DWORD nNeed = 0;

EnumProcessModules( hProc,hModules,256,&nNeed);

//计算获取到句柄数量

DWORD nCount = nNeed / sizeof( HMODULE );

//打印句柄

for (DWORD nIndex = 0; nIndex < nCount;nIndex++)

{

//获取各模块所对应的文件名和路径

CHAR szPath[MAX_PATH] = { 0 };

GetModuleFileNameEx( hProc, hModules[nIndex], szPath, MAX_PATH );


printf( "\t%d: %p, %s\n", nIndex + 1, hModules[nIndex] ,szPath);

}

}

void ProcInfo( )

{

//获取进程ID

DWORD nID = GetCurrentProcessId( );

//获取进程句柄(-1,伪句柄)

HANDLE hProc = GetCurrentProcess( );


printf( "Process ID: %d\n", nID );

printf( "Process Handle: %p\n", hProc );

//根据进程ID获取进程实际句柄

hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, nID );

printf( "Process Handle: %p\n", hProc );

}

int _tmain(int argc, _TCHAR* argv[])

{

ProcInfo( );

ProcModule( );

return 0;

}

[/code]

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: