比如说我在C#中调用的是一个可以实现复制文件的exe,如果这个exe发现目的路径或者源路径不存在,这时会有错误出现,我该如何在c#中获知呢,困扰好几天了,求大神帮个忙。C#调用外部EXE错误

解决方案 »

  1.   


    try
                        {
                            Process.Start(exe路径);
                        }
                        catch (Win32Exception err)
                        {
                               MessageBox.Show(err.Message);
                        }
      

  2.   

    那这个逻辑判断是在那个被调用的exe程序里写了啊,当获取不到U盘的时候重启就可以了啊,至于重启有多种方式…
      

  3.   

    在linux里有个环境变量,可以获知之前一个进程运行的状态,而在win下,应该只能依靠程序的返回值了 
      

  4.   

    那这个逻辑判断是在那个被调用的exe程序里写了啊,当获取不到U盘的时候重启就可以了啊,至于重启有多种方式…   外部EXE只负责向U盘中复制文件,检测不到U盘,只会在CMD命令窗口中显示找不到,然后就退出了,而我需要在获知检测U盘不存在,或者U盘可用容量为0时,在C#中实现电脑重启。
      

  5.   

      我是在windows下做的。
      

  6.   

    不同的程序不同,有的通过控制台输出错误信息,你可以获取。
    有的弹出对话框或者在界面上显示,你需要用api函数去获取对应的界面内容,再判断。
      

  7.   

    那这个逻辑判断是在那个被调用的exe程序里写了啊,当获取不到U盘的时候重启就可以了啊,至于重启有多种方式…   外部EXE只负责向U盘中复制文件,检测不到U盘,只会在CMD命令窗口中显示找不到,然后就退出了,而我需要在获知检测U盘不存在,或者U盘可用容量为0时,在C#中实现电脑重启。
    既然你都知道这些逻辑在外部exe中没做,你可以先做好这些逻辑确保正确的情况下再调用外部exe程序。干嘛在绕逻辑圈呢?
      

  8.   

    那这个逻辑判断是在那个被调用的exe程序里写了啊,当获取不到U盘的时候重启就可以了啊,至于重启有多种方式…   外部EXE只负责向U盘中复制文件,检测不到U盘,只会在CMD命令窗口中显示找不到,然后就退出了,而我需要在获知检测U盘不存在,或者U盘可用容量为0时,在C#中实现电脑重启。
    既然你都知道这些逻辑在外部exe中没做,你可以先做好这些逻辑确保正确的情况下再调用外部exe程序。干嘛在绕逻辑圈呢?
     明白了,谢谢你。