稍等,我给你做一个。不过控制台程序是dos界面的哦。到时候你自己按需求自己改吧。做好了我给你传上来。
#include
#include
using namespace std;
HANDLE main()
{
int nID;
cout>nID;
return GetProcessHandle(nID);
}
HANDLE GetProcessHandle(int nID)//通过进程ID获取进程句柄
{
return OpenProcess(PROCESS_ALL_ACCESS, FALSE, nID);
}
这个是比较简单的方法,不需要遍历所有进程。
望采纳。
OpenProcess的具体说明下面链接中有。百度百科
http://baike.baidu.com/view/1280137.htm
下面是我自己写的方法,你也可以修改之后用
这个方法用于判断进程是否运行,你想取到进程句柄那说明这个进程一定在运行中了
那就可以用我这个方法来判断了
//check if a process is running
int GetProcessCount(const TCHAR* szExeName)//参数改成PID就行了
{
TCHAR sztarget[MAX_PATH];
lstrcpy(sztarget, szExeName);
CharLowerBuff(sztarget, MAX_PATH);
int count = 0;
PROCESSENTRY32 my;
HANDLE hHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (((int)hHandle) != -1)
{
my.dwSize = sizeof(my);
if (Process32First(hHandle, &my))
{
do
{
CharLowerBuff(my.szExeFile, MAX_PATH);
if (lstrcmp(sztarget, my.szExeFile) == 0) //你这里可以改成my.PID
判断PID是不是你要找的,如果是的话就返回my.handle就行了。
{
count++;
}
}while (Process32Next(hHandle, &my));
}
CloseHandle(hHandle);
}
return count;
}