我有一个从Windows上的cmd.exe运行的程序。我想在程序启动时打开第二个cmd.exe。然后程序将接收来自cmd.exe的stdin的进程数据,程序中的数据将来到cmd.exe的stdout。
两个cmd.exe的stdin和stdout是独立的。该程序还可以显示有关第一个cmd.exe的信息。它不是重定向。
在linux上,我可以使用proxy_openpt()和system(" xterm -SX / X")来控制终端的输入和输出。
我尝试过createprocess()和pipe,但我不知道如何处理第二个cmd.exe来接收它的输入。
请帮助我,非常感谢!!!
答案 0 :(得分:1)
只有一个Windows控制台可以与Windows上的单个进程相关联。
但是,你当然可以使用一些IPC来控制另一个进程,它只是你的第二个控制台。 Helios 在cplusplus.com上写了一个简单的例子,说明如何做到这一点:链接链接在“Extra consoles”。
代码可以按原样使用,但您始终可以使用它来通知您自己的代码。
答案 1 :(得分:0)
您可以尝试:
start cmd.exe @cmd /k "Command
或:
start cmd.exe
start file.cmd
答案 2 :(得分:0)
您可以使用与PROCESS_INFORMATION
一起使用的CreateProcess
结构来获取句柄。