WPF 程序中启动和关闭外部.exe程序

WPF 利用Process.Start()方法启动指定路径下的exe文件并传递参数 简单来说就是实现一个程序A 打开程序B,并且在打开的时候传递一些参数给B,最后在B窗口上显示出参数,这个小功能也是折腾了我半天。现在把我的过程整理记录下来。 1.首先我们得有一个被调用的程序,新建一个简单的WPF程序,命名为:argTest。里面加一个label,用来显示接收到的参数。直接运行该程序如下: 2.新建一个WPF程序用来启动我们的argTest.exe程序,命名为call。添加窗体 阅读详情

WPF 程序中启动和关闭外部.exe程序
当需要在WPF程序启动时,启动另一外部程序(.exe程序)时,可以按照下面的例子来:

C#后台代码如下:

开启一个程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication2
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            System.Diagnostics.Process.Start(@"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE");    //调用该命令,在程序启动时打开Excel程序
        }
    }
}


C#后台代码:
关闭一个程序:


using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;

namespace WpfApplication2
{
    /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : Application
    {
        protected override void OnExit(ExitEventArgs e)     //该重写函数实现在程序退出时关闭某个进程
        {
            Process []myProgress;
            myProgress=Process.GetProcesses();          //获取当前启动的所有进程
            foreach(Process p in myProgress)            //关闭当前启动的Excel进程
            {
                if (p.ProcessName == "EXCEL")          //通过进程名来寻找
                {
                    p.Kill();
                    return;
                }                  
            }
            base.OnExit(e);
        }
    }
}

说明:在WPF程序中,Application类的作用有:

(1)可以跟踪应用程序的生存周期;

(2)共享应用程序范围的属性和资源;

(3)管理独立应用程序中的窗口;

补充:对于Application类,可以有很多属性、事件和方法供调用。当需要实现自定义功能时,可以override方法(标记为Virtual的方法)。

C#(WPF)程序将Debug中的.exe文件放入注册表中启动,获取错误的当前路径--解决方案 编写的程序需要开机运行,又不想进入win7的桌面。这样可以通过修改注册表,把原来的explorer.exe换成需要启动的软件。 注意,比如.exe文件存在于D盘的Debug文件夹中,则用 D:\\Debug\\MySoftWare.exe替换 explorer.exe。 但是一定要注意的是,尽量不要有中文文件夹。      但是在该程序代码中需要获取当前路径,即在程序初始化的 阅读详情

相关推荐

Qt双击运行Debug和release模式下生成的可执行文件(.exe),提示应用程序无法正常启动0xc000007b

可执行文件无法运行,提示应用程序无法正常启动0xc000007b1.出现的问题,如下图所示2. 分析3.怎么解决呢?3.1第一种方法(不推荐)3.2 第二种方法(推荐)4.特殊情况,有使用Qt外其他的动态链接库4.1第一种解决方法4.1第二种解决方法 1.出现的问题,如下图所示 QtDebug和打包的可执行文件(*.exe)无法运行,提示应用程序无法正常启动0xc000007b 2. 分析 这是缺少Qt的动态链接文件(.dll)导致的,如Qt5Core.dll等库文件,“DLL的全称是Dynamic

qq_44667165的博客 9439

C#——用WPF记事本小程序

要求 (1)设计界面,向窗体添加下拉式菜单、文本框、打开文件对话框、保存文件对话框。 (2)依次为“文件”下的“新建”、“打开”、“保存”菜单项的Click事件添加事件处理函数。 (3)实现文本文件的打开、编辑和保存功能; 提示: (1) 窗口可用DockPanel进行布局,让菜单和工具栏都位于顶部,即: DockPanel.Dock=“Top”。 (2) 文本文件的显示与编辑可以使用TextBox控件。 (3) 使用命令绑定,让菜单项和工具栏同时与一个操作相关联。 在MainWindow.xaml的Win

lc257的博客 1470

WPF实战:如何把第三方EXE程序无缝嵌入到你的应用窗口(附完整代码)

本文详细介绍了在WPF应用中无缝嵌入第三方EXE程序的实战方案。针对使用SetParent API进行窗口嵌入时常见的焦点丢失、尺寸错乱、渲染异常等问题,提供了完整的C#代码实现和健壮的解决方案,涵盖进程管理、焦点恢复、尺寸同步及DPI适配等关键环节,适用于企业级工具集成场景。

9o8p7i6u5y的博客 1054

WPF笔记—关于调用其他EXE文件

通过网上整理了一下,自己做一个笔记!任务的目的是通过一个button按钮设置一个索引,索引到想打开EXE的文件路径,并且显示在textbox文本框中,再通过button点击事件实现打开EXE程序。 这个程序需要额外添加引用:system.windows.forms 再来一个using System.Diagnostics; 1,这个是我做的界面,代码就不放了,拖动就可以啊! 2,索引部分的代码 p...

qq_44149667的博客 1528

Visual studio下使用 Wix 打包 C#/WPF 程序的中文安装包

第一个Directory Id=INSTALLFOLDER 是根目录,每一个wix工程都会有这个目录元素,第二个Id=ProgramFilesFolder 对应的就是C:\Program Files\ ,64位的就在x86下,第三个元素就是我们自己的应用程序所在的文件夹,最终形成就是c:\Program Files\WxiSetup 在默认的提示中 也可以看见在Component 中添加安装文件,资源,注册表等。那么,我们该如何解决这个问题呢?然而,在引用这些dll文件的过程中,有时候会遇到上面的问题。

weixin_41245990的博客 2652

WPF应用内嵌外部EXE窗口的即用型封装方案(含Win32API调用与容器控件)

在WPF界面里直接显示记事本、计算器、旧版业务系统等任意本地EXE程序的主窗口,不用重写UI也能实现统一入口管理。方案基于标准Win32 API封装,通过FindWindow、SetParent、MoveWindow等接口完成进程启动、窗口句柄获取、父容器绑定、尺寸同步和层级控制。核心逻辑已封装为ApplicationContainer.cs和Win32Api.cs两个C#类,支持传入EXE文件路径字符串一键集成;容器控件ApplicationContainer.xaml和MainWindowAppCont

p5l2m9n4o6q的博客 168

【WPF.NET开发】优化性能:应用程序启动时间

启动 WPF 应用程序所需的时间可能存在极大差异。本主题介绍用于减少 Windows Presentation Foundation (WPF) 应用程序假设启动时间和实际启动时间的各种技巧。

Coding life, Coding world, Coding feature. 2750

Vivado时序违例debug

显示了数据路径延迟。例如,对于违例路径,若布线延迟超过50%,说明该延迟是导致时序不能收敛的主要因素,因此可围绕降低布线延迟这一靶心达到时序收敛。对于跨时钟域路径,Requirement数值会有所变化,但如果数值为0.1,显然是不合理的。目的时钟路径单元,时钟从adc0_bufg/O输出,到达PLLE4_ADV,经过BUFGCE输出,最终到达SRLC32E移位寄存器,对应。源时钟路径单元,时钟从adc0_bufg/O输出,到达PLLE4_ADV,经过BUFGCE输出,最终到达FDRE触发器,对应。

weixin_44513618的博客 1621

C# wpf 嵌入外部程序

实现嵌入各种窗口控件后,其实还会有一种需求:嵌入外部程序,我们有时可能需要嵌入一个浏览器或者或者播放器等一些已有的程序,其嵌入原理也和前面差不多,只要能获取进程的主窗口句柄,然后将窗口嵌入。定义一个依赖属性,提供给xaml设置进程运行的命令行/// 进程运行的命令行以上就是今天要讲的内容,嵌入外部程序还是相对比较容易实现的,而且也有一定的使用场景。创建进程,并能获取到进程的主窗口句柄即可。另外要注意的是管理子进程的退出,其他都问题不大。

codeofcc的博客 2240

Quest 3开发第一步:搞定Meta账号登录和Oculus软件连不上设备的那些坑(2024实测)

本文详细介绍了Quest 3开发初期的关键步骤,包括Meta账号注册、Oculus软件安装与设备连接等常见问题的解决方案。针对国内开发者遇到的邮箱限制、验证码接收等难题,提供了实用的应对策略,并分享了开发环境配置和常见问题排查技巧,帮助开发者快速搭建Quest 3开发环境。

weixin_30333885的博客 495

流媒体协议-RTMP简介

与rtsp 不同,RTSP(Real-Time Streaming Protocol)是一个控制协议,负责控制媒体流的传输,但不传输媒体数据本身。RTSP 可以通过 TCP 或 UDP 传输 RTP 包来传输音视频数据。 RTMP(Real-Time Messaging Protocol)是一个综合性的协议,不仅可以传输音视频数据,还可以传输信令控制指令。RTMP 使用 TCP 作为传输协议,可以直接在 TCP 连接上传输音视频数据,也可以传输控制指令,实现了音视频流的实时传输和控制

xiaoshuaijinniu的博客 4552

WPF 极简内嵌外部EXE方案

本文分享WPF内嵌外部EXE的极简稳定方案:通过Process启动程序并获取窗口句柄,结合Win32API与HwndHost实现界面无缝嵌入。核心要点包括:延时获取句柄防失败、主窗口关闭时强制销毁子进程防残留、实时同步窗口大小避免错位、隐藏原生窗口实现一体化界面。方案适用于工业上位机、视觉检测等需统一管控多工具的场景,具备高稳定性与可落地性。

an_ge_ge_si_mi_d的博客 148

【移远EG800K-CN】从AT指令到MQTT实战:4G模块云端通信全解析

本文详细解析移远EG800K-CN 4G模块的AT指令应用与MQTT云端通信实战。从硬件连接到网络配置,再到MQTT协议的数据上报与命令接收,提供了完整的物联网通信解决方案,帮助开发者快速实现设备与云端的稳定数据交互。

o1p2q3r的博客 560

[.NET] 控制只启动单个指定外部程序

独立观察员 2019 年 6 月 12 日 有的时候我们程序需要启动外部程序来配合实现某些功能,比如启动一个Cef相关程序来承载网页。那么如果那个外部程序并没有实现单例启动,我们程序去启动它的时候就有可能启动了多个,这样轻则造成系统卡顿,重则引发 Bug。这肯定是我们不想看到的,所以本文来探讨如何在启动某个外部程序时,始终只会启动一个。 先来看看外部程序(其实不用关心),其...

Troyfeeling11068的博客 269

从零构建法律案例数据库:Python爬虫实战与法律文本挖掘全攻略

在当今数字化浪潮席卷全球的背景下,法律行业正经历着前所未有的变革。法律案例数据库作为法律大数据的重要组成部分,已经成为法律从业者、研究人员、法学院学生乃至企业法务部门的必备工具。然而,商业法律数据库如北大法宝、威科先行、LexisNexis等往往价格不菲,且数据访问受限。对于个人研究者或小型机构而言,构建一个定制化的法律案例数据库不仅能节省成本,更能根据特定研究需求灵活调整数据结构。

2201_76125261的博客 538

实战案例七:Claude Code 构建完整的 Web 应用

前面的案例大多是单一功能的演示,本章将展示如何使用 Claude Code 从零开始构建一个完整的 Web 应用,涵盖需求分析、架构设计、编码实现、测试部署的全流程。

gaoxiang_120的专栏 581

C#中调用外部exe的使用、调用powershell、退出进程、委托和事件

针对几种情况,简单总结学习一下目前有一个工具需要cmd窗口打开工具界面,工具中无法关闭自身,必须关掉cmd窗口才可以。在C#中调用工具,cmd窗口未出现。使用bat,批处理命令,可以同时打开cmd窗口和工具界面,C#再调用此bat.调用的exe实时显示在窗口的,可以采用bat的方式来实现。System.Diagnostics.Process类:用来启动和停止进程的。1、Process pr = n...

有塔耶奥多的专栏 4046

YOLO11涨点优化:训练技巧 | 使用标签平滑(Label Smoothing)配合余弦退火学习率,防止过拟合,稳步提点

摘要: YOLO11凭借动态卷积核调度、自适应特征融合等创新成为2026年目标检测主流,但面临训练集过拟合问题。文章聚焦两种零推理开销的正则化技巧:标签平滑(Label Smoothing)和余弦退火学习率(Cosine Annealing LR)。标签平滑通过软化硬标签(如将[1,0]改为[0.9,0.1])防止模型过度自信,代码中通过label_smoothing=0.1一键启用;余弦退火则以平滑的余弦曲线调整学习率(cos_lr=True),避免阶梯衰减的震荡。两者组合可显著缩小YOLO11训练与验证

2601_95807009的博客 45

unity中socket通信_WPF 中嵌入Unity

最近,有做过一个wpf 工程中嵌入Unity 的Demo。引用其他博主的一段话:把Unity3D嵌入winform或者wpf程序,过去大部分使用UnityWebPlayer插件来实现,这个插件其实就是网页上播放unity页游的插件。但是使用UnityWebPlayer嵌入桌面开发有各种问题,我认为最大的问题是效率问题(加载缓慢),毕竟是网页的加载方式,而且可以确认未来也不会得到任何优化。由于Web...

weixin_39568597的博客 539

使用Android Studio调试系统应用之TvSettings(一):移植

对于做ROM的同仁、以及想要深入学习Android同学,必定会去调试Android的系统APK,而 *aosp* 源码中的系统APK源码,无法直接在Android Studio中进行调试,本文将持续更新细节,手把手教你,使用Android Studio调试安卓的系统应用。在每个阶段,提供知识点的梳理、总结,为您答疑解惑!

上周的博客 2054

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C#/WPF 应用程序A 调用WPF编写的应用程序B的exe时,参数传递问题

经过验证该方法可行,注意:参数可以多个传入,以空格分隔开的; WPF中, 应用程序A 调用WPF编写的应用程序B的exe,参数传递给B的 主要方法: 1、在App.xaml.cs中的App类中,重载“OnStartup”函数 public partial class App : Application { protected override void On...

^@^lemon tea^@^ 2004

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

外部exe窗体嵌入winform

using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using System.Diagnostics; ...

weixin_33978044的博客 273

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WPF调用打开exe,无法第二次打开,而是将之前窗口显示

关闭打开的exe窗口。

Hat_man_的博客 389

[WPF]当前exe打开外部exe(项目更新功能)

//通过注册表访问安装路径 string RegeditKey = "PMSApp"; RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", true)...

weixin_30920091的博客 239
上一篇: C/C++ 计算程序片段运行时间
下一篇: 回调函数中使用MFC类的成员或对话框控件的简单方法
BeanGo
博客等级 码龄10年 931粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BeanGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值