91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何用CreateProcess函數創建獨立的進程而不是子進程

小億
200
2023-12-20 14:30:52
欄目: 編程語言

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

0
敦煌市| 武安市| 马边| 兰西县| 澄迈县| 凤台县| 漯河市| 汝城县| 太康县| 宿州市| 克东县| 攀枝花市| 饶平县| 巨鹿县| 兴义市| 扬中市| 贡嘎县| 阜阳市| 延津县| 庄浪县| 新绛县| 宁化县| 枝江市| 工布江达县| 亚东县| 开江县| 杭锦后旗| 辽宁省| 方山县| 丹阳市| 台安县| 澎湖县| 富宁县| 陆丰市| 丰县| 中阳县| 万山特区| 佛山市| 额尔古纳市| 海晏县| 汕头市|