当前位置: 首页 > news >正文

C#高级:启动、中止一个指定路径的exe程序

一、启动一个exe

class Program
{
    static void Main(string[] args)
    {
        string exePath = @"D:\测试\Test.exe";// 修改为你要运行的exe路径
        StartProcess(exePath);
    }

    private static bool StartProcess(string exePath)
    {
        // 创建一个 ProcessStartInfo 对象来配置进程启动参数
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            FileName = exePath,  // 要启动的exe路径
            Arguments = "",      // 如果需要传递参数给exe,设置在这里
            UseShellExecute = true, // 如果设置为true,可以启动系统关联的程序
            CreateNoWindow = true // 如果设置为true,不显示控制台窗口
        };

        try
        {
            // 启动进程
            Process.Start(startInfo);
            Console.WriteLine("启动成功!");
            return true;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"错误: {ex.Message}");
            return false;
        }
    }
}

二、终止一个exe

class Program
{
    static void Main(string[] args)
    {
        string processName = "DBTest"; // 要关闭的进程名,不需要带扩展名,打开实际位置的【XXX.exe】,XXX就是这个进程名
        CloseProcess(processName);
    }

    private static bool CloseProcess(string processName)
    {
        try
        {
            // 获取所有正在运行的进程
            Process[] processes = Process.GetProcessesByName(processName);

            // 如果找到了指定的进程,逐个关闭
            foreach (var process in processes)
            {
                Console.WriteLine($"正在关闭进程: {process.ProcessName} (ID: {process.Id})");
                process.Kill(); // 结束进程
                Console.WriteLine("进程已关闭");
            }

            if (processes.Length == 0)
            {
                Console.WriteLine("未找到指定的进程");
            }
            return true;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"错误: {ex.Message}");
            return false;
        }
    }
}

http://www.dtcms.com/a/97777.html

相关文章:

  • 六十天Linux从0到项目搭建(第十天)(系统调用 vs 库函数/进程管理的建模/为什么进程管理中需要PCB?/exec 函数/fork原理与行为详解)
  • 【Linux加餐-网络命令】
  • 数仓架构告别「补丁」时代!全新批流一体 Domino 架构终结“批流缝合”
  • vue中使用defineModel简化defineProps和defineEmits的用法
  • Node.js Express 处理静态资源
  • linux 抓图机器资源不足,排查和删除图片文件
  • Java | 基于 ThreadLocal 实现多客户端访问设备的 REST 请求下发
  • 量子计算:开启信息时代新纪元的钥匙
  • 阀门流量控制系统MATLAB仿真PID
  • 从 YOLO11 模型格式导出到TF.js 模型格式 ,环境爬坑,依赖关系已经贴出来了
  • Python中multiprocessing的使用详解
  • git push的时候出现无法访问的解决
  • MinGW下编译ffmpeg源码时生成compile_commands.json
  • 微信小程序报错:600001 ERR_CERT_AUTHORITY_INVALID 的问题排查及解决
  • 区块链技术在投票系统中的应用:安全、透明与去中心化
  • (!常识!)C++中的内存泄漏和野指针——如何产生?如何避免?解决方案?基本原理?面试常问重点内容?
  • Springbean(二)@Component及其派生注解自动注入(2)使用注意和加载问题
  • JSON是什么
  • 【Git “reset“ 命令详解】
  • 论文浅尝 | C-ICL:用于信息抽取的对比式上下文学习(EMNLP2024)
  • 淘宝获取商品sku详情API接口如何调用?
  • 转发和重定向
  • 每天认识一个设计模式-桥接模式:在抽象与实现的平行宇宙架起彩虹桥
  • GPT-4o图像生成功能:技术突破与隐忧并存
  • R 安装和查看历史版本 R 包指南
  • 在Vue 3 + TypeScript + Vite 项目中安装和使用 SCSS
  • 如何在 Postman 中上传图片并在请求中正确引用?
  • 蓝桥杯 班级活动
  • 【学习笔记】大模型架构设计与长上下文能力的实现
  • jmeter 工具安装及并发压测详解