相关疑难解决方法(0)

在单独的程序中将控制台输出重定向到文本框

我正在开发一个Windows窗体应用程序,它要求我调用一个单独的程序来执行任务.该程序是一个控制台应用程序,我需要将标准输出从控制台重定向到我的程序中的TextBox.

从我的应用程序执行程序没有问题,但我不知道如何将输出重定向到我的应用程序.我需要在程序使用事件运行时捕获输出.

在我的应用程序停止并且文本以随机间隔不断变化之前,控制台程序并不意味着停止运行.我试图做的只是从控制台挂钩输出以触发事件处理程序,然后可以使用它来更新TextBox.

我使用C#编写程序代码并使用.NET框架进行开发.原始应用程序不是.NET程序.

编辑:这是我正在尝试做的示例代码.在我的最终应用程序中,我将用代码替换Console.WriteLine来更新TextBox.我试图在我的事件处理程序中设置断点,甚至没有达到.

    void Method()
    {
        var p = new Process();
        var path = @"C:\ConsoleApp.exe";

        p.StartInfo.FileName = path;
        p.StartInfo.UseShellExecute = false;
        p.OutputDataReceived += p_OutputDataReceived;

        p.Start();
    }

    static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
    {
        Console.WriteLine(">>> {0}", e.Data);
    }
Run Code Online (Sandbox Code Playgroud)

.net c# console textbox winforms

49
推荐指数
2
解决办法
5万
查看次数

重定向进程输出C#

我想将Process的标准输出重定向到一个字符串,以便以后解析.我还希望在进程运行时看到屏幕上的输出,而不仅仅是当它完成运行时.

这甚至可能吗?

c# process output-redirect redirectstandardoutput

11
推荐指数
2
解决办法
2万
查看次数

C#:重定向控制台应用程序输出:如何刷新输出?

我正在产生外部控制台应用程序并使用异步输出重定向.
如此SO帖子所示

我的问题是,在得到OutputDataReceived事件通知之前,生成的进程似乎需要产生一定量的输出.

我想尽快收到OutputDataReceived事件.

我有一个简单的重定向应用程序,这里有一些观察:
1.当我调用一个简单的'while(true)print("X");' 控制台应用程序(C#)我立即收到输出事件.2.当我调用3d派对应用程序时,我试图从命令行行,我看到逐行输出.
3.当我从裸骨包装器中调用该3d派对应用程序时(参见1) - 输出以块(约一页大小)的形式出现.

该应用内部会发生什么?

仅供参考:有问题的应用程序是"USBee DX数据Exctarctor(异步总线)v1.0".

c# console external-process output-redirect

5
推荐指数
1
解决办法
1万
查看次数