当前位置: 首页 > 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)
  • 东营 微信网站建设/seo快速排名软件app
  • 跨境电商公司/惠州短视频seo
  • 广州建设工程中心网站/公司网站制作
  • 世界十大网站排名/营销型网站更受用户欢迎的原因是
  • 单页面推广网站/网页制作源代码
  • 建盏公司最新消息/seo快速排名软件价格