windows 子进程获取父进程的方法。

子进程获取父进程可以通过微软未公开的一个api实现NTSTATUS WINAPI NtQueryInformationProcess(__in HANDLE ProcessHandle,__in PROCESSINFOCLASS ProcessInformationClass,__out PVOID ProcessInformation,__in ULONG ProcessIn
摘要由CSDN通过智能技术生成

子进程获取父进程可以通过微软未公开的一个api实现

NTSTATUS WINAPI NtQueryInformationProcess(
__in HANDLE ProcessHandle,
__in PROCESSINFOCLASS ProcessInformationClass,
__out PVOID ProcessInformation,
__in ULONG ProcessInformationLength,
__out_opt PULONG ReturnLength
);

但是既然未公开,肯定有不公开的理由,这里打算不用这种方式

我的做法是在 父进程创建子进程的时候,传入一个参数,这个参数就是自己的进程id。

父进程:

void startModule1()
{
	std::stringstream ss;
	ss << "module1 "; //注意这里要有空格,module1就是子进程的 exe 文件名
	ss << GetCurrentProcessId();
	std::string moduleName = ss.str();

	STARTUPINFO si;
	PROCESS_INFORMATION pi;
	ZeroMemory( &si, sizeof(si) );
	si.cb = sizeof(si);
	ZeroMemory( &pi, sizeof(pi) );
	// Start the child process. 
	if( !CreateProcess( NULL, LPSTR(moduleName.c_str()) ,NULL, NULL, TRUE, 0,  NULL, NULL, &si, &pi	)) 
	{
		return;
	}
	hd_dwld = pi.dwProcessId;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值