Windows c++ CMD窗口切换
Windows C++ CMD window switching
各位程序员好,我在c++程序中遇到了一些控制台应用程序的问题,我的目标如下:
- 创建第一个CMD窗口。
- 执行命令。(system("print some error text");) 创建第二个CMD窗口。
- 将system(…)焦点更改为第二个CMD窗口
- 执行命令
- 将system(…)焦点更改为第一个CMD窗口
- 执行命令
所有这些的最终目标是创建一个函数,该函数将由CMD应用程序执行,该应用程序将生成另一个CMD窗口,在其上执行命令,然后将焦点返回到原始CMD窗口以继续执行其他代码。我不需要跟踪窗口,也不需要返回窗口。只要创建一个新窗口,切换焦点到它,执行一个命令,将焦点返回到原来的窗口。
- 第一个CMD窗口是在应用程序启动时创建的。
- 使用system(…)向该窗口执行命令;没问题。
-
我用
创建第二个CMD窗口HWND new_hWnd = NULL; ShellExecute(new_hWnd, "open", "cmd.exe", NULL, NULL, SW_SHOW);
- 这就是我遇到问题的地方,我无法将系统(…)重定向到不同的CMD窗口,这是我需要帮助的部分,因为如果我能弄清楚这一点,那么步骤5、6和7将很容易完成。
我试着在网上研究这个,遇到了一些使用"管道"的不同例子,但没有能够重新创建它们,或者理解它们。另外,我注意到有一个
GetConsoleWindow();
函数返回一个句柄到当前的CMD窗口,这对我来说有点信号,应该有一种方法来切换CMD窗口之间使用句柄,但由于我没有切换焦点到其他CMD窗口,我不能调用该函数来获得它的句柄。
那么,我如何使系统(…)目标不同的CMD窗口与句柄?如果这是不可能的,我如何实现这个"管道"系统。
如果解决方案是后者,请尝试尽可能详细和简单,因为它的每一个例子,我在网上发现是真的很大,很难阅读/理解。
如果没有简单的方法来实现"管道",那么请张贴或指出我最好的(一些将帮助我了解管道如何工作)的例子,你可以找到,我会继续工作,直到我弄清楚。提前感谢!
通过在调用CreateProcess
时指定dwCreationFlags
的值CREATE_NEW_CONSOLE
,可以为新进程创建一个新的控制台。
参见文档:
- 进程创建标志:https://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx
- CreateProcess函数:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- 代码编译但不起作用!cmd窗口只是理想和理想,但什么也没发生
- 使用启动命令启动命令时,将命令传递到另一个 cmd 窗口
- CreateProcess正在调用cmd.exe,包括没有显示(闪烁)窗口的参数
- CMD窗口停止工作,文本文件使用fstream读取错误
- 有没有什么方法可以让窗口出现,但不让SFML中的cmd出现
- 试图学习威纳皮.制作了第一个程序,必须向我显示一个窗口.CMD显示,但没有窗口
- C++控制台应用呈现其他 CMD 窗口不接受控制台输入
- 如何在Windows中不显示cmd窗口的情况下运行带参数的外部程序
- 链接:致命错误LNK1561:必须定义VS2015开发者cmd窗口的入口点
- 带有SDL的C++CMD窗口输出
- 调试后,CMD窗口没有显示任何内容
- 文件不显示在cmd提示窗口
- Windows c++ CMD窗口切换
- 关闭或最小化cmd窗口
- Qt主窗口关闭事件Mac Cmd+Q
- 如何在没有弹出cmd窗口的情况下以c ++静默方式执行shell程序
- 多个窗口CMD
- 如何在 GUI 输出窗口而不是 Visual Studio 2015 中的 cmd 控制台上显示我的C++程序输出
- 如何使用QProcess在控制台窗口中启动和终止cmd.exe