gpt4 book ai didi

c - 在 C (Windows) 中创建新进程和子进程的区别

转载 作者:可可西里 更新时间:2023-11-01 09:48:10 25 4
gpt4 key购买 nike

我想从代码本身创建一个新的 exe 进程,这样我就可以有两个并行进程。

但是,我希望它们是独立的进程,而不是父子进程。

有没有办法在 C (Windows) 中执行此操作?

最佳答案

在 Windows 中,processes don't have parents .一些工具读取 InheritedFromUniqueProcessId 值,但这不会告诉您哪个进程启动您的进程。它只告诉您句柄和其他属性是从哪里继承的。然而在实践中,这个值通常设置为启动子进程的进程的 ID。

在 Vista 及更高版本上,您可以通过使用 STARTUPINFOEX 调用 CreateProcess 来更改 InheritedFromUniqueProcessId 值适当填写的结构:使用 InitializeProcThreadAttributeList 创建一个属性列表, 并添加一个
PROC_THREAD_ATTRIBUTE_PARENT_PROCESS
属性与 UpdateProcThreadAttribute .

在 XP 上,没有官方的方法可以做到这一点。您可以尝试使用 NtCreateProcessRtlCreateUserProcess,但它们无法正确设置 Win32 子系统,因此您的程序可能无法运行。

关于c - 在 C (Windows) 中创建新进程和子进程的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13947107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com