阅读量:8
`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, // 启动信息 &pi // 进程信息 ); if (success) { std::cout << "Independent process created." << std::endl; // 关闭不再使用的句柄 CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } else { std::cerr << "Failed to create independent process." << std::endl; } return 0; }
在上述示例中,我们将 `bInheritHandles` 参数设置为 `FALSE` 并使用 `CREATE_NEW_PROCESS_GROUP` 标志创建了一个新的进程组。这样可以确保新进程是独立于当前进程的。
注意:`command` 参数应替换为您实际要执行的可执行文件路径或命令行参数。