当前位置: 首页 > 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;
        }
    }
}

相关文章:

  • 六十天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)
  • 抗美援朝老战士宁昭逝世,享年93岁
  • 摩根大通任命杜峯为亚太区副主席,加码中国市场业务布局
  • 浙商银行一季度净赚超59亿微增0.61%,非息净收入降逾22%
  • 王毅:携手做世界和平与发展事业的中流砥柱
  • 一周人物|卡鲁等入围英国特纳奖,李学明新展中国美术馆
  • 西班牙葡萄牙突发全国大停电,欧洲近年来最严重停电事故何以酿成