春暖花开
雪化了,花开了,春天来了
posts - 149,comments - 125,trackbacks - 0

【进程】

    Mobile 中的进程信息大体包含在PROCESSENTRY32结构中,我们可以获得进程的诸多信息,此处无法获得进程所占内存和CPU利用率。
数据结构

typedef struct tagPROCESSENTRY32 {

  DWORD dwSize;

  DWORD cntUsage;

  DWORD th32ProcessID;

  DWORD th32DefaultHeapID;

  DWORD th32ModuleID;

  DWORD cntThreads;

  DWORD th32ParentProcessID;

  LONG  pcPriClassBase;

  DWORD dwFlags;

  TCHAR szExeFile[MAX_PATH];

  DWORD th32MemoryBase;

  DWORD th32AccessKey;

  } PROCESSENTRY32;

  typedef PROCESSENTRY32* PPROCESSENTRY32;

                              
代码示例

 1
 2// 创建快照句柄
 3
 4HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 5
 6if (INVALID_HANDLE_VALUE != hSnapshot)
 7
 8{
 9
10     // 先搜索系统中第一个进程的信息
11
12     Process32First(hSnapshot, &pe);
13
14     do{      
15
16           // 可通过pe获取指定的信息
17
18//……
19
20          // 获取感兴趣的进程信息
21
22          //……
23
24          // 获取进程所在路径
25
26TCHAR processPath[MAX_PATH]
27
28          HPROCESS hProcess = OpenProcess(0, FALSE, pe.th32ProcessID);
29
30          if (NULL != hProcess)
31              GetModuleFileName((HMODULE) hProcess, processPath, sizeof(processPath));
32
33          CloseHandle(hProcess);
34
35}
while ( Process32Next(hSnapshot, &pe));
36
37// 关闭快照句柄
38
39CloseToolhelp32Snapshot(hSnapshot); 
40
41}

42

 

 

【模块】

已知进程ID,便可获得对应各模块的信息。在此介绍了如何获得模块的信息。

数据结构



代码示例

 1MODULEENTRY32 me; // 定义模块对象
 2me.dwSize = sizeof(me);
 3// 创建对应进程的模块快照
 4HANDLE handle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th32ProcessID);
 5if (INVALID_HANDLE_VALUE != handle)
 6{
 7// 先搜索系统中第一个模块的信息
 8Module32First(handle, &me);
 9    do{
10          // 获取模块信息
11          //……
12// 获取感兴趣的模块信息
13//……
14
15          // 获取模块所在路径
16          GetModuleFileName(me.hModule, me.szExePath, sizeof(me.szExePath)); 
17    }
while (Module32Next(handle, &me));
18// 关闭快照
19CloseToolhelp32Snapshot(handle); 
20 }

21
posted on 2009-07-03 15:57 Sandy 阅读(819) 评论(0)  编辑 收藏 引用 所属分类: Windows Mobile

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理