中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何用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
商南县| 阜城县| 昌宁县| 塔河县| 中江县| 兖州市| 奉节县| 江西省| 盖州市| 仁怀市| 上栗县| 武宣县| 曲沃县| 夏津县| 临武县| 凤山市| 土默特左旗| 云南省| 黄大仙区| 临邑县| 光泽县| 阳朔县| 理塘县| 镇康县| 博罗县| 乐平市| 兴安盟| 西乡县| 襄城县| 沙湾县| 临沧市| 万全县| 镇远县| 凤阳县| 石泉县| 垣曲县| 西峡县| 巩留县| 阿拉善盟| 江门市| 若尔盖县|