首页
社区
课程
招聘
[旧帖] [求助]各位大侠帮帮忙,关于列举进程的问题 0.00雪花
发表于: 2009-7-31 00:40 1335

[旧帖] [求助]各位大侠帮帮忙,关于列举进程的问题 0.00雪花

2009-7-31 00:40
1335
小弟目前在学习一款软件的源码,看到软件在列举进程这块要获取一个进程的图标
用了以下语句
hSnapshotInner = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pInfo.th32ProcessID);
                        Module32First(hSnapshotInner,&mInfo);
                        ZeroMemory(&sfi,sizeof(SHFILEINFO));
                        SHret=SHGetFileInfoW(mInfo.szExePath,,&sfi,sizeof(SHFILEINFO),SHGFI_ICON);
其中pInfo是一个LPPROCESSENTRY32结构体(同样是使用CreateToolhelp32Snapshot函数获得的)。我看到上面这段代码时候不太明白。软件作者用SHGetFileInfoW函数来获取进程图标,这个函数第一个参数大概是需要进程的路径。那么为什么不直接使用pInfo.szExeFile而是麻烦地获取进程的模块,然后再用mInfo.szExePath来获得路径呢?

另外关于进程的模块我还不太了解,网上查询了也找不到相关资料,哪位大侠能发个介绍进程模块的网址,不甚感激

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
这个问题很简单,因为msdn是这样写的嘛
看看PROCESSENTRY32结构的szExeFile是什么,粗体部分
szExeFile
The name of the executable file for the process. To retrieve the full path to the executable file, call the Module32First function and check the szExePath member of the MODULEENTRY32 structure that is returned. However, if the calling process is a 32-bit process, you must call the QueryFullProcessImageName function to retrieve the full path of the executable file for a 64-bit process.
2009-7-31 04:18
0
雪    币: 89
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
明白了,多谢了,顺便问一下哪儿有关于进程模块的教程
2009-7-31 15:58
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
看msdn啊
2009-7-31 18:53
0
雪    币: 89
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
my english is very poor
2009-8-2 14:57
0
游客
登录 | 注册 方可回帖
返回
//