阅读量:178
`CreateProcess` 函数可以用于创建一个独立的进程。为了确保新进程不是作为当前进程的子进程创建的,您需要将 `bInheritHandles` 参数设置为 `FALSE` 并提供一个独立的进程空间。以下是创建独立进程的示例代码:
#include#include int main() { STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; // 创建独立的进程 BOOL success = CreateProcess( nullptr, // 模块名(可执行文件路径) const_cast ("command"), // 命令行参数 nullptr, // 进程句柄不可继承 nullptr, // 线程句柄不可继承 FALSE, // 不继承句柄 CREATE_NEW_PROCESS_GROUP | // 创建一个新的进程组 CREATE_UNICODE_ENVIRONMENT, // 使用Unicode环境变量 nullptr, // 使用父进程环境变量 nullptr, // 使用父进程工作目录 &si, // 启动信息 Π // 进程信息 ); if (success) { std::cout <>< std::endl; ="" // 关闭不再使用的句柄="" closehandle(pi.hprocess);="" closehandle(pi.hthread);="" } else {=""></ std::endl;><>< std::endl; }="" return 0;=""></ std::endl;>
在上述示例中,我们将 `bInheritHandles` 参数设置为 `FALSE` 并使用 `CREATE_NEW_PROCESS_GROUP` 标志创建了一个新的进程组。这样可以确保新进程是独立于当前进程的。
注意:`command` 参数应替换为您实际要执行的可执行文件路径或命令行参数。