Sun*_*nny 2 c windows multiple-processes
我想从代码本身创建一个exe的新进程,这样我就可以有两个并行的进程.
但是,我希望他们是独立的过程,而不是亲子.
有没有办法在C(Windows)中执行此操作?
在Windows中,进程没有父进程.有些工具会读取InheritedFromUniqueProcessId值,但这并不能告诉您哪个进程启动了您的进程.它只告诉您继承句柄和其他属性的位置.但实际上,此值通常设置为启动子进程的进程的ID.
在Vista及更高版本中,您可以InheritedFromUniqueProcessId通过CreateProcess使用STARTUPINFOEX适当填充的结构调用来更改值:使用创建属性列表InitializeProcThreadAttributeList,并使用添加
PROC_THREAD_ATTRIBUTE_PARENT_PROCESS属性UpdateProcThreadAttribute.
在XP上,没有正式的方法可以做到这一点.您可以尝试使用NtCreateProcess或RtlCreateUserProcess,但这些不能正确设置Win32子系统,因此您的程序可能无法运行.
| 归档时间: |
|
| 查看次数: |
4275 次 |
| 最近记录: |