Я создал консольное приложение с использованием C#, и я вызвал его из другого приложения Windows Forms, используя Process
.Обработка ошибок с использованием процесса C#
Ниже приведен код для консольного приложения
static void Main(string[] args)
{
try
{
// ...my code
}
catch (Exception)
{
throw;
}
}
Ниже код для вызова ехе приложения консоли из окна приложения с помощью процесса
public void CallExe()
{
try
{
Process proc = new Process();
proc.StartInfo.FileName = @"D:\Debug\console1.exe";
proc.StartInfo.Arguments = "My args";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();
string stdout = proc.StandardOutput.ReadToEnd();
string stderr = proc.StandardError.ReadToEnd();
proc = null;
}
catch (Exception ex)
{
throw ex;
}
}
Теперь, что я хочу, когда какая-либо ошибка поступает из консольного приложения , он напрямую бросает в мой блок захвата окна. Или я могу получить сообщение об ошибке в моем оконном приложении, которое создается консольным приложением?
вы не может поймать ошибку, которая возникает в другом процессе, но вы _can_ возвращаете код выхода из консольного приложения. – stuartd
Могу ли я получить ex.message из консольного приложения? –
Вы можете [указать код выхода] (http://stackoverflow.com/questions/155610/how-do-i-pecpec-the-exit-code-of-a-console-application-in-net), который целое число и выберите его из ['Process.ExitCode'] (https://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode (v = vs.110) .aspx). Или вы можете читать/писать все, что хотите, от/до StandardOutput или StandardError – stuartd