如何获得父进程的PID

sang 2000-02-29 07:15:00
在一个进程内创建另一个进程,那么在被创建进程中如何获得创建进程的信息?
...全文
773 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
netmare 2000-03-01
  • 打赏
  • 举报
回复
父进程用命令行参数或用环境变量,或通过其他ipc方法把自己的pid传给子进程,子进程用这个pid来OpenProcess得到句柄,用这个句柄来获得创建进程的信息
olo 2000-03-01
  • 打赏
  • 举报
回复
发个消息传给它。
netmare 2000-03-01
  • 打赏
  • 举报
回复
nt我也不会呀
sang 2000-03-01
  • 打赏
  • 举报
回复
对NT4有办法吗?
sang 2000-03-01
  • 打赏
  • 举报
回复
Thank you!
netmare 2000-03-01
  • 打赏
  • 举报
回复
方法倒是有一个,不过只能在win98/2000下用,win95/nt都不行
#include <tlhelp32.h>
...
DWORD GetPPid()
{
HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32 = {0};

// Take a snapshot of all processes in the system.

hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (hProcessSnap == (HANDLE)-1)
return (FALSE);

// Fill in the size of the structure before using it.

pe32.dwSize = sizeof(PROCESSENTRY32);

// Walk the snapshot of the processes, and for each process,
// display information.

if (Process32First(hProcessSnap, &pe32))
{
while(pe32.th32ProcessID!=GetCurrentProcessId())
Process32Next(hProcessSnap, &pe32);
}
return(pe32.th32ParentProcessID);
}
sang 2000-03-01
  • 打赏
  • 举报
回复
如果我们只知道子进程是由某个父进程创建但不能知道父进程的名字,也不知道父进程是否用命令行参数或环境变量,或通过其他ipc方法把自己的pid传给子进程,那么子进程如何获得父进程的PID?
netmare 2000-03-01
  • 打赏
  • 举报
回复
父进程怎么会未知呢,子进程不是他自己建的吗
sang 2000-03-01
  • 打赏
  • 举报
回复
如果父进程未知,如何获得该PID?

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧