项目场景:
某些时刻我们可能需要定时去打开我们系统(仅限windows)中的软件,如记事本或者notepad或者visual studio,vscode 等等
问题描述
如何使用c#程序打开windows软件,
以下我们使用 .net 8版本

创建一个控制台程序展示
方式一
cs
using System;
using System.Diagnostics;
using System.Reflection;
using System.Text;
// 获取进程句柄
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.Arguments = @"E:\Project\config.json";
process.Start();
IntPtr processHandle = process.Handle;
Console.WriteLine($"进程句柄: {processHandle}");
// 可以在这里进行其他与进程相关的操作,如监控进程状态等
// 等待进程结束
process.WaitForExit();
这里展示用记事本打开一个json文件,前提是这个文件路径是正确的,否则他会提示

当然还可以打开其他文件
方式二
代码是这样的
cs
using System;
using System.Diagnostics;
using System.Reflection;
using System.Text;
// 获取进程句柄
Process process = new Process();
process.StartInfo.FileName = @"E:\新服务器.xlsx";
process.StartInfo.UseShellExecute = true; // 必须为true才能通过关联程序打开
process.Start();
IntPtr processHandle = process.Handle;
Console.WriteLine($"进程句柄: {processHandle}");
// 可以在这里进行其他与进程相关的操作,如监控进程状态等
// 等待进程结束
process.WaitForExit();
这个代码process.StartInfo.UseShellExecute = true; 是关键 否则程序会提示找不到路径报错,打不开相应的文件
总结
使用 process.StartInfo.FileName = @$"{}"; //使用路径
process.StartInfo.UseShellExecute = true;
可以打开你想要的文件,如果只想用记事本打开你需要的文件使用第一种方式即可,
以下只是使用控制台方式,可以将此代码嵌入其他.net 项目 使用