Просто FYI этот вопрос был повторно отредактирован, чтобы быть более кратким.Отсутствует вывод консоли на проект Winforms, работает над проектом консоли
Я работаю с .NET (будь то помощь в C# или VB, это не имеет значения). У меня есть консольное приложение, то основное:
using System;
namespace ConsolePrinter
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Output");
Console.ReadLine();
}
}
}
В моем приложении Winforms, мне нужно перенаправить стандартную ошибку и стандартный ввод, но не стандартный выход. Стандартный вывод должен отображаться в окне консоли. Сделав простой проект Winforms и запустив вышеуказанный консольный EXE как объект Process, я все еще могу просмотреть вывод консоли в вызываемой консоли. Как только я перенаправляю стандартную ошибку, выход исчезает из окна консоли, и все, что отображается, является пустой консолью.
Вот пример Winforms проекта:
using System;
using System.Windows.Forms;
using System.Diagnostics;
namespace winformstest2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = "ConsolePrinter.exe";
//proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
}
}
}
Этот код работает как задумано. Разоружение этой строки с комментариями приводит к ошибке, о которой я говорю.
Я пробовал только прикреплять формы к консольному проекту, но, к сожалению, мне нужно часто показывать и скрывать консоль, поэтому запуск консольного приложения в качестве идеального процесса. Использование Win32 API также было задумано, но пользователь не должен закрывать все приложение, закрывая консоль, которую AllocConsole() и другие вызовы API Win32 могли бы стать би-продуктом их использования.
Любая помощь приветствуется, спасибо!
Непонятно, что происходит - когда вы запускаете приложение командной строки, это начинает * с консольным окном *? Конечно, было бы полезно иметь [mcve] (консольного приложения и крошечное приложение WinForms - ему просто нужно окно с кнопкой для запуска консольного приложения ...) –
Это дубликат http: // stackoverflow .com/вопросы/4362111/как-д-я-шоу-а-консоль вывод окно-в-форм-приложение. Хотя вам придется преобразовать код в vb.net – FloatingKiwi
@JonSkeet Это программа на C++, которая выводит на stdout, ничего особенного. В консольном проекте он выводится непосредственно в окно консоли .net, а Winforms открывает консоль, но ничего не выводит. – KingDan