可以通过下面这段代码获得当前进程的父进程。
HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32 = {0};
HANDLE hProcessParent = NULL;
DWORD dwParentProcessID = 0;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
return 1;
pe32.dwSize = sizeof(pe32);
if (!Process32First(hProcessSnap, &pe32))
{
CloseHandle(hProcessSnap);
return 1;
}
do
{
if (pe32.th32ProcessID == GetCurrentProcessId()) //Is this current process?
break;
}while (Process32Next(hProcessSnap, &pe32));
dwParentProcessID = pe32.th32ParentProcessID;
CloseHandle(hProcessSnap);
hProcessParent = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwParentProcessID); //open the parent process