是否有API可以在windows命令提示符下插入

本文关键字:windows 命令提示符 插入 API 是否 | 更新日期: 2023-09-27 18:22:35

有一种情况,我需要根据从命令提示符窗口收到的输出不断地读、写和处理一些东西。例如,如果命令窗口正在查找输入,我需要向用户显示一个消息框。有办法做到吗?

是否有API可以在windows命令提示符下插入

通过Process对象,您可以重定向标准输入和输出。

所以你可以做如下的事情。。。

        var proc = new Process();
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.FileName = "C:''YourExeGoesHere.exe";
        proc.StartInfo.CreateNoWindow = true;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.RedirectStandardInput = true;
        proc.Start();
        var thisComesFromTheProcess = proc.StandardOutput.ReadLine();
        proc.StandardInput.WriteLine("this goes to the process");

您可能希望查看Process.OutputDataReceived事件,以便在写入输出数据时得到通知,但这应该会让您走上正轨,并且还有其他SO帖子涵盖OutputDataReceive事件。

我会让命令行应用程序启动一个WPF可执行文件。

让WPF打开一个socket/webapi主机等来监听额外的命令。

当命令行需要用户输入时,让它运行一个批处理,它向WPF应用程序提交一个请求,这与telnet会话没有什么不同。您可以将此调用设为异步调用,也可以相应地等待响应。

然后,WPF可以打开一个通知,请求用户输入。用户输入一个参数,并将其提交回上面启动连接的命令行,从而允许批处理文件继续处理。

或者,如果您可以使用Powershell,而不是标准的CommandLine,这可能会很有用。您甚至可以像这样打开文件对话框。

这些是我能想到的你的选择,但是的,这将是一个PITA,所以祝你好运。