如何在C++程序中打开一个新的cmd.exe并获取其句柄
how to open a new cmd.exe in C++ program and get its handle
我有一个程序在Windows上运行cmd.exe。我想在程序启动时打开第二个cmd.exe。然后程序将接收来自cmd.exe的stdin的数据,来自程序的数据将来自cmd.exe的stdout。
两个cmd的stdin和stdout.exe是独立的。该程序还可以显示有关第一个cmd.exe的信息。它不是重定向。
在 Linux 上,我可以使用 proxy_openpt(( 和 system("xterm -SX/X"( 来控制终端的输入和输出。
我已经尝试了createprocess((和pipe,但我不知道如何获得第二个cmd的句柄.exe以接收其输入。
请帮助我,非常感谢!!
只有一个 Windows
控制台可以与 Windows 上的单个进程相关联。
但是,您当然可以使用一些IPC来控制另一个进程,该进程仅充当您的第二个控制台。Helios在 cplusplus.com 前段时间写了一个简单的例子来说明如何做到这一点:在"额外的控制台"上的链接链接。
代码可以按原样使用,但您始终可以使用它来通知自己的代码。
你可以试试:
start cmd.exe @cmd /k "Command
或:
start cmd.exe
start file.cmd
您可以从与 CreateProcess
一起使用的 PROCESS_INFORMATION
结构中获取句柄。
PROCESS_INFORMATION文档
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何使用ndk-build.cmd构建Android.so文件
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 如何在C++程序中打开一个新的cmd.exe并获取其句柄
- 使用启动命令启动命令时,将命令传递到另一个 cmd 窗口
- 试图学习威纳皮.制作了第一个程序,必须向我显示一个窗口.CMD显示,但没有窗口
- 如何使用C++Lib函数或Windows API在一个会话中执行多个cmd命令
- 为什么我的c++ cmd屏幕挂起时,我试图访问一个文件来存储数据
- 是否有可能从c++程序中输出一个变量作为cmd命令?
- 如何编写一个使用powershell而不是cmd的控制台应用程序
- 将cout引用到一个变量位置(文件或cmd)