WM 如何枚举正在运行程序,并获得其对应的完整路径?
如题:
想做一个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好像不支持。
请高手解答……急, 急, 在线等……