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

How to create a new process in C/C++ and get this new process handle in WinXp?

本文关键字:并在 进程 WinXp 进程句柄 新进程 创建 一个 C++      更新时间:2023-10-16

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

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

请帮忙。

CreateProcess()返回一个包含进程句柄的PROCESS_INFORMATION结构。看看这里和这里。

虽然ShellExecute()不会为您提供所需的信息,但ShellExecuteEx()会返回SHELLEXECUTEINFO结构中的进程句柄。看看这里和这里。

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

CreateProcess将句柄返回给PROCESS_INFORMATION中的进程。