我正在尝试使用CreateProcess(...)运行一个进程,并在一个单独的控制台窗口中独立运行它.
我可以使用系统("...")函数实现这一点,但我更喜欢CreateProcess,因为它让我可以指定环境和工作目录,获取进程的句柄,以及在需要时管道stdin/out至.
我在互联网上找到的只是反问题,即人们有额外的控制台窗口,想要摆脱它们!在早期版本的Windows中打开并显示新的控制台窗口似乎是正常的行为?
现在,即使我运行"cmd.exe/c ...",我也无法获得额外的窗口.
我尝试使用STARTF_USESHOWWINDOW标志没有运气.
有谁有这个问题?
PS:例如,GUI窗口显示.notepad.exe将正常显示.
这是我的代码(实质上)
PROCESS_INFORMATION processInfo;
STARTUPINFOA startupInfo;
ZeroMemory(&startupInfo,sizeof(startupInfo));
startupInfo.dwFlags |= CREATE_NEW_CONSOLE;
startupInfo.dwFlags |= DETACHED_PROCESS;
ok&=CreateProcessA( NULL,
const_cast<char*>(comand.c_str()), // safe for CreateProcessA
NULL, NULL, TRUE, NULL, NULL, NULL,
&startupInfo, &processInfo);
Run Code Online (Sandbox Code Playgroud)
我正在尝试运行C:/Windows/system32/cmd.exe/c help程序运行,我可以读取管道的输出.仍然没有窗口.