`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` 參數應替換為您實際要執行的可執行文件路徑或命令行參數。