C# 怎么启动和停止一个外部进程_C# 外部进程启动停止方法指南

轻婷小哥_1937

轻婷小哥_1937

2025-11-13

783人浏览

原创

通过System.Diagnostics.Process类可启动和停止外部进程。使用Process.Start()启动程序,如Process.Start("notepad.exe")或配合ProcessStartInfo配置参数、工作目录等;停止进程时可调用Kill()强制终止或CloseMainWindow()尝试友好关闭,并结合WaitForExit()确保退出,最后调用Dispose()释放资源。示例中启动持续ping进程,用户按键后终止,完整控制进程生命周期。注意异常处理与资源管理。

c# 怎么启动和停止一个外部进程_c# 外部进程启动停止方法指南

在 C# 中启动和停止外部进程主要通过 System.Diagnostics.Process 类实现。这个类提供了丰富的 API 来控制外部程序的运行,比如启动记事本、命令行工具或其他可执行文件,并在需要时终止它。

启动外部进程

使用 Process.Start() 方法可以启动一个外部程序。你可以指定可执行文件路径,也可以传入参数。

常见用法示例:
  • 直接启动一个程序(如记事本):

Process process = Process.Start("notepad.exe");

  • 启动带参数的程序(例如用记事本打开特定文件):

Process process = Process.Start("notepad.exe", "C:\test.txt");

  • 更灵活的方式是使用 ProcessStartInfo,便于配置工作目录、隐藏窗口等:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "ping";
startInfo.Arguments = "www.baidu.com";
startInfo.UseShellExecute = false; // 允许重定向输入输出
startInfo.CreateNoWindow = true; // 不显示窗口

Process process = Process.Start(startInfo);

停止外部进程

要关闭已启动的进程,可以调用 Kill() 或 Kill(true) 方法强制结束,或者使用 CloseMainWindow() 尝试友好退出。

Google Workspace CLI
Google Workspace CLI

使用 `gw` CLI 与 Google Workspace(Drive、Docs、Sheets)交互。当需要浏览、读取、创建、搜索或管理 Google Drive 中的文件时使用。

下载
  • 强制终止进程(立即结束):

process.Kill();

  • 尝试发送关闭消息给主窗口(模拟用户点击“关闭”按钮):

bool closed = process.CloseMainWindow();
// 如果没有响应,再调用 Kill()

  • 确保资源释放,记得调用 WaitForExit() 等待进程真正退出:

process.Kill();
process.WaitForExit(); // 可选:等待结束
process.Dispose();

完整示例:启动并停止一个进程

下面是一个完整的控制 ping 命令的例子:

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        ProcessStartInfo info = new ProcessStartInfo("ping");
        info.Arguments = "www.google.com -t"; // 持续 ping
        info.UseShellExecute = false;
        info.CreateNoWindow = true;

        Process process = Process.Start(info);

        Console.WriteLine("按任意键停止 ping...");
        Console.ReadKey();

        if (!process.HasExited)
        {
            process.Kill();
            process.WaitForExit();
        }

        process.Dispose();
        Console.WriteLine("进程已结束。");
    }
}

基本上就这些。掌握 Process.Start 和 Kill/CloseMainWindow 的使用,就能有效控制外部程序的生命周期。注意处理异常(如程序不存在),并在不需要时释放资源。不复杂但容易忽略细节。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

google c# notepad

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
javascriptvoid(o)怎么解决
javascriptvoid(o)怎么解决

javascriptvoid(o)的解决办法:1、检查语法错误;2、确保正确的执行环境;3、检查其他代码的冲突;4、使用事件委托;5、使用其他绑定方式;6、检查外部资源等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.23

636

5

java中void的含义
java中void的含义

本专题整合了Java中void的相关内容,阅读专题下面的文章了解更多详细内容。

2025.11.27

371

13

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

2024.01.03

4336

7

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

2025.12.06

306

9

console接口是干嘛的
console接口是干嘛的

console接口是一种用于在计算机命令行或浏览器开发工具中输出信息的工具,提供了一种简单的方式来记录和查看应用程序的输出结果和调试信息。本专题为大家提供console接口相关的各种文章、以及下载和课程。

2023.08.08

916

5

console.log是什么
console.log是什么

console.log 是 javascript 函数,用于在浏览器控制台中输出信息,便于调试和故障排除。想了解更多console.log的相关内容,可以阅读本专题下面的文章。

2024.05.29

6763

7

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

2026.11.03

0

17

Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

2026.11.03

0

19

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

2026.11.03

0

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程