zoukankan      html  css  js  c++  java
  • WPF 利用Process.Start()方法启动指定路径下的exe文件并传递参数接收参数

    WPF 利用Process.Start()方法启动指定路径下的exe文件并传递参数接收参数

    在开发中遇到这样一个需求:WPF程序A启动WPF程序B并且传递参数,WPF程序B接收参数并处理。

    如何来实现这样的需求呢,网络上已经有很多的文章描述这个问题,在这里做个记录。

     首先通过如下代码启动WPF客户端B:

            private void ActionStartClientExcute()
            {
                var address = "exe位置";
                Process process = new Process();
                process.StartInfo.FileName = address;
                process.StartInfo.Arguments = "arg1 arg2";
                process.StartInfo.UseShellExecute = true;
                process.Start();
            }

    在接收客户端中添加如下代码:

    先定义一个MainApp类,这个类中必须有一个带参数的Main(string[] args)函数,并且将带有Main函数的MainApp类设置为启动对象,

    选择当前项目->然后右键->选择属性->应用程序面板,设置启动对象。

    外部传递过来的参数就在string[] args里面,例如传递的参数是字符串"arg1 arg2",则args的内容是args[0]="arg1",args[1]="arg2",每个数组元素间是以空格分隔的。

    在项目中应该有一个App.xaml和一个App.xaml.cs文件。他们继承至Application类,在App.xaml里面设置程序的启动页面StartupUri="Window.xaml",也就是我们原先的程序界面。

    在这里我们需要在Main函数最后实例化这个App类:如代码中InitApp方法。

        public class MainApp 
        {
            [STAThread]
            public static void Main(string[] args)
            {
                if (args != null && args.Length == 2)
                {
                    string arg1= args[0].Trim();
                    string arg2= args[1].Trim();
                }
                InitApp();
            }
    
            public static void InitApp()
            {
                App app = new App();
                app.InitializeComponent();
                app.Run();
            }
        }

    这样就可以成功实现WPF程序A打开WPF程序B,并传递参数这个需求啦!!!

  • 相关阅读:
    提取RDLC reporting相关dll的方式,打包客户端时需要用
    VS2012程序打包部署详解
    快速打包你的应用程序——Inno Setup
    "RDLC"报表-参数传递及主从报表
    如何在多个页中显示行标题和列标题 (Reporting Services)
    编译cocos2d-x 4.0版本
    2080Ti评测结果
    (转)u3d设计模式
    java基础知识(一)
    Java8新特性学习(一)--lambda表达式
  • 原文地址:https://www.cnblogs.com/devin_zhou/p/8671067.html
Copyright © 2011-2022 走看看