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