如何在C / C ++中创建一个新进程并在WinXp中获取这个新进程句柄?

时间:2013-08-13 12:32:08

标签: c++ c windows process

我需要知道如何在C / C ++代码中获取新创建的进程的句柄。我不太了解所有这些Microsoft库,我刚刚阅读了两种创建流程的方法。首先是通过ShellExcecute调用,第二个是通过CreateProcess,但这些都不是一个HANDLE。我需要知道进程的句柄,因为我希望主线程在继续之前等待进程完成。最重要的是,如果有人帮我写一个看起来像这样的函数,我会喜欢:

HANDLE create_process(/*parameters same as for ShellExecute*/)
{
    ...
}

请帮忙。

2 个答案:

答案 0 :(得分:5)

CreateProcess()返回包含进程句柄的PROCESS_INFORMATION结构。请参阅herehere

虽然ShellExecute()未向您提供所需信息,但ShellExecuteEx()会返回SHELLEXECUTEINFO结构中的流程句柄。请参阅herehere

我建议您查看MSDN文档,了解您正在使用的API函数,因为它非常有用。

答案 1 :(得分:2)

CreateProcess返回PROCESS_INFORMATION中进程的句柄。