社区
进程/线程/DLL
帖子详情
问个API函数:如何枚举系统内所有线程、进程?
hproof
2001-06-03 10:14:00
问个API函数:如何枚举系统内所有线程、进程?
//在CSDN提问比查字典快。
...全文
186
3
打赏
收藏
问个API函数:如何枚举系统内所有线程、进程?
问个API函数:如何枚举系统内所有线程、进程? //在CSDN提问比查字典快。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hproof
2001-06-04
打赏
举报
回复
碰到这中事你应该只有高兴的份啊,喊累干什么。
FMD
2001-06-03
打赏
举报
回复
再贴一次
(太累了,不过可能会再得分,那就贴吧)
编号 主 题 来 源 收录时间
1 列举进程及相关信息 自撰 00.05.08
列举进程、线程、堆、模块等。
一、列出进程
//列出所有进程
HANDLE snapshothandle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 processentry;
processentry.dwSize=sizeof(PROCESSENTRY32);
BOOL finded=Process32First(snapshothandle,&processentry);
while(finded!=NULL)
{
//processentry中返回进程信息
finded=Process32Next(snapshothandle,&processentry);
}
CloseHandle(snapshothandle);
二、列出线程
//列出所有线程
HANDLE snapshothandle=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0);
THREADENTRY32 threadentry;
threadentry.dwSize=sizeof(THREADENTRY32);
BOOL finded=Thread32First(snapshothandle,&threadentry);
while(finded!=NULL)
{
//threadentry中返回线程信息
finded=Thread32Next(snapshothandle,&threadentry);
}
CloseHandle(snapshothandle);
三、列出模块
//列出指定进程调用到的DLL等。
//pid为进程ID
HANDLE snapshothandle=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pid);
MODULEENTRY32 moduleentry;
moduleentry.dwSize=sizeof(MODULEENTRY32);
finded=Module32First(snapshothandle,&moduleentry);
while(finded!=NULL)
{
//moduleentry中返回模块信息
finded=Module32Next(snapshothandle,&moduleentry);
}
CloseHandle(snapshothandle);
三、列出进程分配的内存(堆)
//先得到堆表
//再列出堆
//pid为进程ID
HANDLE snapshothandle=CreateToolhelp32Snapshot(TH32CS_SNAPHEAPLIST,pid);
HEAPLIST32 heaplistentry;
heaplistentry.dwSize=sizeof(HEAPLIST32);
finded=Heap32ListFirst(snapshothandle,&heaplistentry);
while(finded!=NULL)
{
//heaplistentry中返回了堆表的信息
//列出堆表中的的堆
HEAPENTRY32 heapentry;
heapentry.dwSize=sizeof(HEAPENTRY32);
//heaplistentry.th32HeapID为堆ID
BOOL finded2=Heap32First(&heapentry,pid,heaplistentry.th32HeapID);
while(finded2!=NULL)
{
//heapentry中返回堆信息
finded2=Heap32Next(&heapentry);
}
finded=Heap32ListNext(snapshothandle,&heaplistentry);
}
CloseHandle(snapshothandle);
FMD
2001-06-03
打赏
举报
回复
//查CSDN以前的贴子比在CSDN上再问一次快!!!!!!!!!!!!!!
切记
C/C++:Windows编程—创建
进程
、终止
进程
、
枚举
进程
、
枚举
线程
、
枚举
DLL
进程
、
线程
及DLL
枚举
API
介绍 无论是
枚举
进程
还是
枚举
进程
中的DLL文件,方法都是相同的,都是通过创建指定的相关快照,再通过循环逐条获取快照的内容。类似的
枚举
线程
、
枚举
堆都是相同的方法,差别只是在创建快照时的参数不同,逐条获取快照的内容时的
API
函数
不同而已。
枚举
进程
的
API
函数
:CreateToolhelp32Snapshot()、Process32First()、Process32Next...
驱动开发:内核中
枚举
进
线程
与模块
内核
枚举
进程
使用`PspCidTable` 这个未公开的
函数
,它能最大的好处是能得到
进程
的EPROCESS地址,由于是未公开的
函数
,所以我们需要变相的调用这个
函数
,通过`PsLookupProcessByProcessId`
函数
查到
进程
的EPROCESS,如果`PsLookupProcessByProcessId`返回失败,则证明此
进程
不存在,如果返回成功则把EPROCESS、PID、PPID、
进程
名等通过DbgPrint打印到屏幕上。
进程
和
线程
:
进程
的开销比
线程
大在了哪里?
不知你在面试中是否遇到过这样的问题,题目很短,看似简单,但在回答时又感觉有点吃力?比如下面这两个问题:
进程
内部都有哪些数据? 为什么创建
进程
的成本很高? 这样的问题确实不好回答,除非你真正理解了
进程
和
线程
的原理,否则很容易掉入面试大坑。本讲,我将带你一起探究问题背后的原理,围绕面试题展开理论与实践知识的学习。通过本讲的学习,希望你可以真正理解
进程
和
线程
原理,从容应对面试。
进程
和
线程
进程
(Process),顾名思义就是正在执行的应用程序,是软件的执行副本。而
线程
是轻量级的
进程
。
进程
是分配资源
Windows-
API
函数
大全(
API
之
进程
和
线程
函数
)
API
之
进程
和
线程
函数
CancelWaitableTimer 这个
函数
用于取消一个可以等待下去的计时器操作 CallNamedPipe 这个
函数
由一个希望通过管道通信的一个客户
进程
调用 ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 CreateEvent 创建一个事件对象 CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(...
易语言调用
API
之
进程
和
线程
函数
进程
和
线程
是我们制作游戏外挂的重点,设计多
线程
,
进程
的控制。
API
之
进程
和
线程
函数
CancelWaitableTimer 这个
函数
用于取消一个可以等待下去的计时器操作 CallNamedPipe 这个
函数
由一个希望通过管道通信的一个客户
进程
调用 ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 CreateEvent 创建一个事件对象 CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) CreateMutex 创建一个互
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章