c# – 如何回显现有的CMD窗口

前端之家收集整理的这篇文章主要介绍了c# – 如何回显现有的CMD窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我正在使用的程序可以使用以下代码在CMD中使用命令行启动.
string[] commandLines = Environment.GetCommandLineArgs();

但是我希望能够在处理命令行之后将消息返回到CMD窗口.任何帮助,将不胜感激.

编辑:我将程序作为Windows应用程序运行,而不是控制台应用程序.

解决方法

我最后使用RenniePet发布的答案作为对我的问题的评论解决问题.我会在这里列出解决方案,以便任何试图重现它的人.
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AttachConsole(int dwProcessId);

private const int ATTACH_PARENT_PROCESS = -1;

StreamWriter _stdOutWriter;

// this must be called early in the program
public void GUIConsoleWriter()
{
    // this needs to happen before attachconsole.
    // If the output is not redirected we still get a valid stream but it doesn't appear to write anywhere
    // I guess it probably does write somewhere,but nowhere I can find out about
    var stdout = Console.OpenStandardOutput();
    _stdOutWriter = new StreamWriter(stdout);
    _stdOutWriter.AutoFlush = true;

    AttachConsole(ATTACH_PARENT_PROCESS);
}

public void WriteLine(string line)
{
    GUIConsoleWriter();
    _stdOutWriter.WriteLine(line);
    Console.WriteLine(line);
}

将此代码添加到程序后,您只需使用例如以下内容开始返回行.

WriteLine("\nExecuting commands.");
原文链接:https://www.f2er.com/csharp/100083.html

猜你在找的C#相关文章