C# System.Diagnostics.Process打开和关闭exe应用程序

本文介绍如何在C#中使用System.Diagnostics.Process类来打开和关闭第三方exe应用程序。包括设置应用程序路径启动程序,以及通过获取进程名称来终止运行中的程序。

目录

一、打开应用程序

二、关闭应用程序


本文主要介绍在C#中使用System.Diagnostics.Process打开和关闭第三方exe外部应用程序。

一、打开应用程序

要求:根据需要打开的应用程序所在路径修改FileName后的exe程序路径。

Process m_Process = new Process();
m_Process.StartInfo.FileName = @".\exe\ERSSky\bind\ERSSky.exe";
m_Process.Start();

二、关闭应用程序

要求:根据关闭的应用程序名称修改GetProcessByName函数中的程序名称。

Process[] proc = Process.GetProcessesByName("ERSSky");
for (int i = 0; i < proc.Length; i++)
{
    proc[i].Kill();  //逐个结束进程.
}

 

C# 中,使用 `System.Diagnostics.Process.Start` 方法可以启动外部进程或应用程序。该方法属于 `System.Diagnostics.Process` 类,提供了多种重载形式以满足不同的需求。以下是一些常见的使用场景方法。 ### 启动默认浏览器并打开指定网页 可以使用 `Process.Start` 方法直接传递 URL 来启动默认浏览器并打开指定的网页。例如: ```csharp System.Diagnostics.Process.Start("http://zhidao.baidu.com"); ``` 如果系统中已经打开了浏览器窗口,该方法可能会在现有窗口中加载指定的 URL;如果没有打开浏览器,则会启动一个新的浏览器窗口并加载该 URL [^1]。 ### 指定应用程序参数 如果需要启动特定的应用程序并传递参数,可以使用两个参数的重载形式。第一个参数是应用程序的路径,第二个参数是要传递给应用程序的命令行参数。例如,启动 Internet Explorer 并打开百度知道页面: ```csharp System.Diagnostics.Process.Start("iexplore.exe", "http://zhidao.baidu.com"); ``` ### 启动本地应用程序 除了启动浏览器,还可以使用 `Process.Start` 方法启动本地的应用程序。例如,启动注册表编辑器: ```csharp System.Diagnostics.Process.Start(@"C:\Windows\regedit.exe"); ``` ### 与外部进程交互 如果需要与外部进程进行交互,例如读取标准输入或写入标准输出,可以设置 `RedirectStandardInput` `RedirectStandardOutput` 属性为 `true`。这将允许通过代码与外部进程进行通信。例如: ```csharp Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.Start(); // 向标准输入写入命令 process.StandardInput.WriteLine("dir"); process.StandardInput.Flush(); // 读取标准输出 string output = process.StandardOutput.ReadToEnd(); Console.WriteLine(output); process.WaitForExit(); ``` ### 设置进程启动选项 可以通过 `ProcessStartInfo` 类来设置更多启动选项,例如工作目录、窗口样式等。例如,启动记事本并将工作目录设置为 `C:\`: ```csharp ProcessStartInfo startInfo = new ProcessStartInfo("notepad.exe"); startInfo.WorkingDirectory = @"C:\"; startInfo.WindowStyle = ProcessWindowStyle.Minimized; System.Diagnostics.Process.Start(startInfo); ``` ### 处理异常 在启动进程时,可能会遇到文件未找到或其他异常情况。为了确保程序的健壮性,建议使用 `try-catch` 块来捕获并处理这些异常: ```csharp try { System.Diagnostics.Process.Start("nonexistentfile.exe"); } catch (Exception ex) { Console.WriteLine("无法启动进程: " + ex.Message); } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cchangcs

谢谢你的支持~

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

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

打赏作者

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

抵扣说明:

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

余额充值