万卷书   首页 > 电脑书籍 > Win2000/NT >Win 2000下的进程枚举
 
可以用 OpenProcessToken 和 AdjustTokenPrivileges 这两个函数来提升进程的特权。

  讲了那么多,现在回到主题上来。到底使用哪个方法比较好呢?在 win 2000 下有3个方法可供选择,我比较喜欢简单的方法。NtQuerySystemInformation 功能固然强大,但使用比较麻烦。而 win 2000 的 TOOLHELP32 API 其本质还是调用了 NtQuerySystemInformation 函数,由于它发生错误时,可能不能正确返回返回值,所以不是很稳定,使用起来也是很麻烦的,不符合我的懒人本性。还是采用 PSAPI 比较好,简单又方便,只需要三个函数,且没有复杂的结构体参数。

  函数原型:

BOOL
WINAPI
EnumProcesses(
DWORD * lpidProcess,//指针指向存放进程ID的数组
DWORD cb, //数组大小
DWORD * cbNeeded //返回的实际大小
);

BOOL
WINAPI
EnumProcessModules(
HANDLE hProcess, //进程句柄
HMODULE *lphModule, //指针指向存放模块句柄的数组
DWORD cb, //数组大小
LPDWORD lpcbNeeded //返回的实际大小
);

DWORD
WINAPI
GetModuleFileNameEx(
HANDLE hProcess, //进程句柄
HMODULE hModule, //模块句柄
LPSTR lpFilename, //存放模块文件名的字符串
DWORD nSize //字符串大小
);

上一页 下一页