利用进程快照枚举当前Windows运行进程的信息
来源:互联网 发布:沈阳淘宝代运营 编辑:程序博客网 时间:2024/06/09 06:50
#include "stdafx.h"
#include "Windows.h"
#include "process.h"
#include "tlhelp32.h"
const int THREAD_NUM = 500;
HANDLE handle[THREAD_NUM];
unsigned int __stdcall ThreadFun(PVOID pM)
{
printf("线程ID号为%4d\n", GetCurrentThreadId());
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
PROCESSENTRY32 pe;//PROCESSENTRY32:用来存放快照进程信息的一个结构体
//设置结构体pe的大小
pe.dwSize = sizeof(pe);
//利用函数CreateToolhelp32Snapshot()给系统内的所有进程拍一个快照
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot调用失败!\n");
return -1;
}
//遍历进程快照,轮流显示每个进程的信息
BOOL bMore =::Process32First(hProcessSnap,&pe);//利用process32First函数来获得第一个进程的句柄
BOOL terminate = FALSE;
while( bMore != FALSE)
{
printf("\n\n");
printf("进程名:%s\n",pe.szExeFile);
printf("PID:%u\n",pe.th32ProcessID);
printf("线程数:%u\n",pe.cntThreads);
for (int i = 0; i < pe.cntThreads; i++)
handle[i] = (HANDLE)_beginthreadex(NULL, 0, ThreadFun, NULL, 0, NULL);
WaitForMultipleObjects(pe.cntThreads, handle, TRUE, INFINITE);
bMore=::Process32Next(hProcessSnap,&pe);//利用Process32Next函数来获得下一个进程的句柄
}
//释放snapshot对象
::CloseHandle(hProcessSnap);
system("pause");
return 0;
}
#include "Windows.h"
#include "process.h"
#include "tlhelp32.h"
const int THREAD_NUM = 500;
HANDLE handle[THREAD_NUM];
unsigned int __stdcall ThreadFun(PVOID pM)
{
printf("线程ID号为%4d\n", GetCurrentThreadId());
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
PROCESSENTRY32 pe;//PROCESSENTRY32:用来存放快照进程信息的一个结构体
//设置结构体pe的大小
pe.dwSize = sizeof(pe);
//利用函数CreateToolhelp32Snapshot()给系统内的所有进程拍一个快照
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot调用失败!\n");
return -1;
}
//遍历进程快照,轮流显示每个进程的信息
BOOL bMore =::Process32First(hProcessSnap,&pe);//利用process32First函数来获得第一个进程的句柄
BOOL terminate = FALSE;
while( bMore != FALSE)
{
printf("\n\n");
printf("进程名:%s\n",pe.szExeFile);
printf("PID:%u\n",pe.th32ProcessID);
printf("线程数:%u\n",pe.cntThreads);
for (int i = 0; i < pe.cntThreads; i++)
handle[i] = (HANDLE)_beginthreadex(NULL, 0, ThreadFun, NULL, 0, NULL);
WaitForMultipleObjects(pe.cntThreads, handle, TRUE, INFINITE);
bMore=::Process32Next(hProcessSnap,&pe);//利用Process32Next函数来获得下一个进程的句柄
}
//释放snapshot对象
::CloseHandle(hProcessSnap);
system("pause");
return 0;
}
阅读全文
0 0
- 利用进程快照枚举当前Windows运行进程的信息
- 枚举系统当前进程信息
- windows mobile进程查看器开发(一)——获得当前运行进程的信息
- 得到用户当前运行的进程信息
- 进程线程枚举快照
- 枚举进程、进程快照、查找进程
- 获取Windows系统的进程运行信息
- 获取Windows系统的进程运行信息
- 获取Windows系统的进程运行信息
- 获取Windows系统的进程运行信息
- 利用peb枚举当前进程加载模块
- 获取当前手机运行的进程的相关信息
- 获得当前运行进程的进程名
- Script:WINDOWS Script 枚举运行中进程
- 枚举当前系统进程
- 枚举当前所有进程
- 四种枚举当前进程的方法
- 枚举当前系统进程的一种方法
- BZOJ1101 POI2007 Zap
- Android 沉浸式 完全沉浸
- Android开发中的常见异常
- unity多线程方案
- nginx-rtmp源码概述
- 利用进程快照枚举当前Windows运行进程的信息
- 网站添加微信登录功能
- -> 与 .的区别,&与*
- 使用grade查看某个库的版本,以及这个库被谁依赖
- spark基础知识
- 平衡二叉树(AVL树)
- tomcat jndi + spring配置
- 2073活动选择问题
- Android中Activity四种启动模式和taskAffinity属性详解