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

use*_*386 1 c c++ windows process

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

HANDLE create_process(/*parameters same as for ShellExecute*/)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Len*_*ate 5

CreateProcess()返回PROCESS_INFORMATION包含进程句柄的结构.看到这里这里.

虽然ShellExecute()没有提供您需要的信息,但ShellExecuteEx()返回SHELLEXECUTEINFO结构中的过程句柄.看到这里这里.

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