这是一个相当复杂的过程,所以请多多包涵!无论如何,这个概念是直截了当的:
我有一个 C 程序,它根据用户输入生成一个批处理文件并执行它。在所有情况下,批处理文件都会打开一个新终端。我希望我的程序通过新终端执行设置命令。
我 99% 肯定我需要为此使用 Win32 API,并且完全可以接受这个挑战,但我只是想朝着正确的方向稍微推动一下。
关于如何设计这样一个程序的任何建议?
非常感谢您的宝贵时间!
当您使用CreateProcess()
启动批处理脚本时,您可以指定CreatePipe()
为标准输入和标准输出创建的自定义管道。这将允许您的应用程序通过管道发送任何命令来控制应用程序。
如果你只指定标准输入管道,那么输出仍然会被发送到它自己的控制台窗口。
最简单的方法是将SendMessage(WM_CHAR) 发送到新的控制台窗口,但这不是错误证明。
正确的方法是使用 STARTF_USESTDHANDLES 标志 CreateProcess()。在此处查看示例