zoukankan      html  css  js  c++  java
  • 2019-11-29-WPF-Process.Start-出现-Win32Exception-异常

    title author date CreateTime categories
    WPF Process.Start 出现 Win32Exception 异常
    lindexi
    2019-11-29 10:19:50 +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 提供的图片

  • 相关阅读:
    POJ-1700 Crossing River
    C++操作符new-动态存储空间分配
    POJ-3978-Primes
    POJ-1316-Self Numbers
    浅谈二维数组在传参中的使用
    OneToMany与ManyToOne的属性
    jquery的学习
    struts2常用标签
    Struts2.xml中result type属性说明
    监听器Listener
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085447.html
Copyright © 2011-2022 走看看