求MFC教程,关于进程的例如:编写程序像任务管理器那样获得某个进程的句柄数,和线程数

来源:百度知道 编辑:UC知道 时间:2024/05/30 23:51:31
实习中,没接触过MFC,会一些C++的基础知识,实习的地方指导老师让我写一个MFC程序:编写程序像任务管理器那样获得某个进程的句柄数,和线程数。请大家帮忙,写这样的一个程序都需要哪些方面的知识啊!回答得好我会追加分!

#include <TlHelp32.h>
#include <pdh.h>
#pragma comment(lib,"pdh.lib")
#include <PSAPI.H>
#pragma comment(lib,"psapi.lib")
// 返回指定进程的句柄数
BOOL EnableDebugPrivilege(BOOL fEnable)
{
BOOL fOK = FALSE;
HANDLE hToken = NULL;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken)){
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount =1;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);
fOK = (GetLastError()==ERROR_SUCCESS);
CloseHandle(hToken);
}
return fOK;
}
DWORD GetProcHandleCount(HANDLE hProcess)
{
if(!EnableDebugPrivilege(TRUE))
{
return 0;
}
HANDLE hQuery=NULL;
PdhOpenQuery(NULL,0,&hQuery);
if(NULL==hQuery)
{
return 0;<