2018-5-28-WPF-Process.Start-出现-Win32Exception-异常

title author date CreateTime categories
WPF Process.Start 出现 Win32Exception 异常
lindexi
2018-05-28 10:21:51 +0800
2018-05-22 14:25:12 +0800
WPF

我在使用 WPF 其他其他软件的时候,发现出现Win32Exception异常。

如果使用下面的代码启动另一个软件,那么在启动的软件路径不存在时,就会出现异常System.ComponentModel.Win32Exception,没有其他信息

	        var st = new ProcessStartInfo(ProcessName,
                "-p " + Port);

            if (NeedHidden)
            {
                st.CreateNoWindow = true;
                st.WindowStyle = ProcessWindowStyle.Hidden;
            }

            var remoteGuardian = Process.Start(st); //监控远程应用

上面的代码的 NeedHidden 表示是否需要隐藏窗口,如果设置为 false ,启动控制台会出现黑窗。代码 ProcessName 就是其他的软件的路径。

如果这时 File.Exists(ProcessName) 为 false ,那么 Process.Start 就出现System.ComponentModel.Win32Exception异常,而且这个异常没有其他的信息

所以建议在调用 Process.Start 之前判断路径是否存在

	        if (!File.Exists(ProcessName))
            {
                throw new ArgumentException("启动软件路径不存在" + ProcessName);
            }

为什么会出现找不到路径?我使用的是WPF 封装 dotnet remoting 调用其他进程里面需要引用一个库用来做远程的软件,因为我使用一个库 A 引用了远程的软件,使用程序B引用了A,因为没有直接引用远程软件,所以就没有在输入路径找到这个文件,所以出现异常。

其他可能出现异常的是:

  • 启动的程序弹出 UAC 被用户取消

更多关于 remoting 的博客

WPF 封装 dotnet remoting 调用其他进程

.net remoting 抛出异常

.net remoting 使用事件

感谢

walterlv 告诉我另一个出现异常的情况

Miss_Bread 提供的图片

posted @ 2019-11-21 16:02  lindexi  阅读(54)  评论(0编辑  收藏  举报