3
最近boost 1.64發佈,包括boost :: process。這爲啓動流程提供了一個簡單的界面。以前我使用boost :: process庫的獨立版本(請參閱here)。這很好。我想更改爲新版本,以便我可以放棄獨立依賴項。Boost :: windows隱藏控制檯
該API有點不同,但一切工作正常,除了事情。在舊版本中,我能夠傳遞一個特定於窗口的上下文對象,這允許我隱藏進程打開的任何控制檯窗口。
boost::process::win32_context ctx;
ctx.environment = boost::process::self::get_environment();
STARTUPINFOA stup;
ZeroMemory(&stup, sizeof(stup));
stup.cb = sizeof(stup);
stup.dwFlags = STARTF_USESHOWWINDOW;
stup.wShowWindow = SW_HIDE;
ctx.startupinfo = &stup;
std::vector<std::string> args;
boost::process:child process = boost::process::win32_launch("myprogram", args, ctx);
使用新的版本,它看起來是這樣的:
boost::process::environment env = boost::this_process::environment();
boost::process:child process(boost::filesystem::path("myprogram"), env);
一切正常,除了隱藏控制檯窗口的罰款。是否有可能實現這一目標?
這比舊圖書館好得多! –
請注意 - 原則上可以預期設置/錯誤/成功處理程序以(反向)順序調用。也就是說,除非庫或擴展特別針對某些關鍵的內部邏輯覆蓋該邏輯。 – sehe
@VTT:如果他得到一個布爾型('bShowWindow')來條件設置SW_HIDE或SW_SHOW,怎麼處理這個?我試過'(bShowWindow)? :: boost :: process :: windows :: show :: :: boost :: process :: windows :: hide'但它不能編譯爲子結構參數... – jpo38