C#:跨进程方法使用

跨进程:我用大白话理解,就是一个主程序调用另一个程序的过程。

当前使用框架:WPF
设计模式:MVVM

主程序

view

Command="{Binding Path=方法名}"

viewmodel

private RelayCommand 变量名;

  public RelayCommand 方法名字=> 方法名字?? (变量名= new RelayCommand(() =>
        {
            try
            {
            //程序中相对路径
                string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"该文件夹里\被调用的程序名字.exe");

                if (File.Exists(path))
                {
                    var startInfo = new ProcessStartInfo(path)
                    {
                        //调用的是 CreateProcess
                        UseShellExecute = false,
                        //不显示程序窗口
                        CreateNoWindow = true,
                        //设置启动动作,确保以管理员身份运行
                        Verb = "runas",
                        //设置启动参数
                        Arguments = ApplicationContext.Context.CurrentVersionRoot.data.version + " " + ApplicationContext.Context.CurrentVersionRoot.data.fileUrl,
                        //外部启动程序运行路径
                        WorkingDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"被调用的程序名字")
                    };
					//启动外部程序
                    Process process = Process.Start(startInfo);
                    //监视进程退出
                    process.EnableRaisingEvents = true;
                 
                }
                else
                {
                    EventManager.CurrentEvent.PublishErrorMessage(true, "更新程序未找到,请检查是否集成!");
                }
            }
            catch (Exception ex)
            {
                Logs.CureentLogs.WriteLog("启动更新程序失败", ex);

                EventManager.CurrentEvent.PublishErrorMessage(true, "启动更新程序失败!" + ex.Message);
            }


        }));

调用子程序

Release下的文件放到主程序中,上面写好的相对路径文件下

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值