我有一个windows form
应用程序和一个command prompt
exe。我正在执行命令提示符whithin win form按钮单击
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "ConsoleApplication2.exe";
Process.Start(info);
我有一些操作whtin按钮单击事件,它在调用exe后执行。但是,如果没有从命令提示符exe抛出异常,我只需要执行。基本上需要的是从exe中冒出异常来赢得。我尝试抛出异常,但由于exe和win都是两个不同的应用程序实例,异常不会被抛回调用者。有没有办法实现这个目标?
答案 0 :(得分:2)
您的代码激活了exe文件。请注意,您的程序与其他程序一样,都在返回代码。这个返回码可以通过这样做来实现:
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "ConsoleApplication2.exe";
Process p = Process.Start(info);
p.WaitForExit();
int eCode = p.ExitCode;
请不要在主线程中执行此操作,因为它将停止,直到进程停止。
在您的ConsoleApplication2.exe中,确保在异常的情况下,您将返回(在main
函数中)一个代码(数字),表示存在错误。就这么简单:
static int Main()
{
try
{
// My code
}
catch (Exception)
{
return 5;// Meaning error
}
return 0; // all went better then expected!
}