| 方法 | 描述 |
| GetName | 以NULL作为参数,调用 GetModuleBaseName ,最后去掉扩展名 “.EXE” |
| GetFileName | 以NULL作为参数,调用 GetModuleFileNameEx |
| GetMainWindowHandle | 参见GetMainWindowHandle |
| GetMainWindowTitle | |
| GetParentProcessID | 用ProcessBasicInformation作为参数调用NtQueryInformationProcess |
| GetKERNELHandleCount | 用ProcessHandleCount作为参数调用NtQueryInformationProcess |
| GetUSERHandleCount | 用GR_USEROBJECTS作为参数调用GetGuiResources |
| GetGDIHandleCount | 用GR_GDIOBJECTS作为参数调用GetGuiResources |
| GetWorkingSet | 调用GetProcessMemoryInfo |
| GetCmdLine | 参见GetProcessCmdLine |
| GetOwner | 参见GetProcessOwner的细节 |
| GetSessionID | ProcessIdToSessionId (参见对快速用户转换的讨论部分——Windows XP的一个新特性) |
| GetModuleList | CModuleList是一个对EnumProcessModules 和GetModuleFileNameEx的打包类 |
| GetChildrenCount 以及子进程清单 | 要获取某个进程的子进程列表,目前还没这样的API(即便有也未公开)可供使用。但是,因为某个进程的父进程是已知的,所以将某个进程加到其父进程的子进程列表中不难(参见SetChildrenList的实现) |
C:\>tlist 632
632 CMD.EXE C:\WINNT\System32\cmd.exe - tlist 632
CWD: C:\
CmdLine: C:\WINNT\System32\cmd.exe /k cd "C:\"
VirtualSize: 13408 KB PeakVirtualSize: 13412 KB
WorkingSetSize: 948 KB PeakWorkingSetSize: 952 KB
NumberOfThreads: 1
968 Win32StartAddr:0x4ad1a420 LastErr:0x000000cb State:Waiting
5.0.2195.1600 shp 0x4ad00000 cmd.exe
5.0.2195.1600 shp 0x77f80000 ntdll.dll
5.0.2195.1600 shp 0x77e80000 KERNEL32.dll
5.0.2195.1600 shp 0x77e10000 USER32.dll
5.0.2195.1340 shp 0x77f40000 GDI32.DLL
5.0.2195.1600 shp 0x77db0000 ADVAPI32.dll
5.0.2195.1615 shp 0x77d40000 RPCRT4.DLL
6.1.8637.0 shp 0x78000000 MSVCRT.dll
第三行的参数/k cd "C:\"用于外壳调用cmd.exe。如果指定了/k,则cmd.exe执行指定的命令,但是不退出。由于这时调用的应用程序,所以在你构造的工具中这样使用行不通的,必须通过API函数调用。关注此文的读者还看过: