WM 如何枚举正在运行程序,并获得其对应的完整路径?

ji1bing 2010-01-31 12:17:50
如题:
想做一个Windows Mobile手机平台(WinCE)的软件,其中一个功能是任务管理器,枚举系统正在运行的程序,并根据其完整路径得到图标显示在程序界面上,所以有两个问题:
1 如何枚举正在运行程序?
2 如何拿到他们的完整路径?

对于1 有以下代码:
HANDLE procSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(procSnap == INVALID_HANDLE_VALUE)
{
DEBUGMSG( TRUE, ( TEXT( "CreateToolhelp32Snapshot failed, %d \n" ), GetLastError() ) );
return FALSE;
}
PROCESSENTRY32 procEntry = { 0 };
procEntry.dwSize = sizeof(PROCESSENTRY32);
BOOL bRet = Process32First(procSnap,&procEntry);
while(bRet)
{
wprintf(L"PID: %d (%s) \n", procEntry.th32ProcessID, procEntry.szExeFile);

bRet = Process32Next(procSnap, &procEntry);
}
CloseHandle(procSnap);
CloseToolhelp32Snapshot( procSnap );
但是以上方法枚举显示如下:
PID: -1209786590 (gwes.exe)
PID: -1210953078 (shell32.exe)
PID: 923567366 (EmulatorStub.exe)
PID: -1759318294 (poutlook.exe)
PID: -686224770 (connmgr.exe)
PID: 399530142 (ConManClient2.exe)
PID: 381381394 (fexplore.exe)
PID: -1749149726 (edm.exe)
PID: -163131430 (ctlpnl.exe)
PID: 1989934082 (MobileCalculator.exe)
....
比如说,手机中的Contacts,Calendar,Tasks等程序没法枚举。
而查看手机自带的任务管理器,显示信息如下:
Tasks
File Explorer
Calculator
....
我想要拿到以上数据。

对于第二个问题又说使用GetModuleFileNameEx函数,但是WinCE好像不支持。

请高手解答……急, 急, 在线等……


...全文
264 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2010-02-05
  • 打赏
  • 举报
回复
GetModuleFileName
小男孩与胖子 2010-02-05
  • 打赏
  • 举报
回复
根据PID号是应该可以找到相关的函数来获得相关的句柄。但是想找到窗口句柄好像不太现实,因为你不清楚两个相同的名字到底哪一个对应哪个PID,因此我个人认为是不能得到对应的窗口句柄。
ji1bing 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sjdev 的回复:]
据说GetModuleFileName可以得到,用Process ID作为参数,调用 GetModuleFileName((HMODULE) dwProcessID, tzPath, MAX_PATH) ,要不你试试?
[/Quote]

谢谢 那个能得到
但是怎么判断是否为系统进程,就像本身枚举的那样,将系统关键进程给过滤掉 剩下用户运行的?
ji1bing 2010-01-31
  • 打赏
  • 举报
回复
谢谢 那个能得到
但是怎么判断是否为系统进程,就像本身枚举的那样,将系统关键进程给过滤掉 剩下用户运行的?
sjdev 2010-01-31
  • 打赏
  • 举报
回复
据说GetModuleFileName可以得到,用Process ID作为参数,调用 GetModuleFileName((HMODULE) dwProcessID, tzPath, MAX_PATH) ,要不你试试?

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧