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,并传递参数这个需求啦!!!

原文地址:https://www.cnblogs.com/devin_zhou/p/8671067.html

时间: 2024-11-05 02:20:23

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

C#递归读取指定路径下的所有文件并保存至TreeView

1.代码如下: /// <summary> /// 递归读取指定路径下的所有文件信息 /// </summary> /// <param name="path"></param> /// <param name="node"></param> private void DIGuiGetFile(string path, TreeNode node) { if (!Directory.Exists

遍历一个指定路径下的所有文件

import java.io.File; import java.util.ArrayList; import java.util.List; public class FileReader { static List<String> result = new ArrayList<String>(); static String path1 = "D:\\commit\\HAManager\\0807"; static String path2 = "

利用浏览器外部协议(URL Procotol)打开本地exe文件

一.利用注册表文件将外部协议写入注册表 [HKEY_CLASSES_ROOT\PCTV] @="PCTVProtocol" "URL Protocol"="\"C:\\Program Files (x86)\\PCTV双模软终端_64位\\PCTV.exe\"" [HKEY_CLASSES_ROOT\PCTV\DefaultIcon] @="\"C:\\Program Files (x86)\\PCTV双模

unity3d 依据指定的Assets下的目录路径 返回这个路径下的全部文件名称

using UnityEngine; using System.Collections; using System.Collections.Generic; using System.IO; <pre class="csharp" name="code"> public static List<string> nameArray = new List<string>(); /// <summary> /// 依据指定的

Android -- 采用系统相册浏览指定路径下照片

//打开系统相册 Intent intent=new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivity(intent); //打开指定的一张照片 Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(pi

matlab读取指定路径下的图像

利用matlab读取指定路径下的图像 %% 读入指定路径imgFolder下的图像imgName imgFolder = 'F:\博\快盘\图像+数据\images\文章实验图'; %指定路径 imgName = 'tile3_24.png'; %指定路径下的图像的名字 % read the image imgInput= imread(fullfile(imgFolder,imgName)); %读入图像

C#遍历指定路径下的文件夹

通过指定路径访问路径下的文件,在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.CreateDirectory,已重载,用于创建指定路径下的所有目录: 2.Delete,删除指定目录: 3.Exists,确定给定目录是否引用磁盘现有目录:说白点就是判断路径是否存在: 4.GetCreationTime,获取目录的创建时间和日期: 4.GetCurrentDirectory,获取应用程序的当

访问指定路径下的目录以及文件

#include "stdafx.h" //vs2010下运行通过 #undef UNICODE #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <iostream> using namespace std; void browseFile(char* path) { char pattern[FILENAME_MAX + 1]; sprintf(p

删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件

1 @echo off 2 ::删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件. 3 ::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持 4 rem 指定待删除文件的存放路径 5 set SrcDir=D:\ajaxtrain\web 6 rem 指定天数 7 set DaysAgo=0 8 rem 要删除的文件通配 9 set searchmast=*.html 10 set filename=D:\ajaxtrain\web\deletefil