使用c#程序打开windows软件

项目场景:

某些时刻我们可能需要定时去打开我们系统(仅限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 项目 使用

相关推荐
yswenli7 小时前
基于C#开发网站视频嗅探下载工具——BrowserVideoGrabber
c#·videodownload·webvideodownload·videograbber
Lost of 程序猿7 小时前
M2 实战:询价与采购订单聚合落地——跨聚合一致性、领域事件与 Outbox
开发语言·c#·asp.net·.net
Polevne9 小时前
C# GRPC 一元与双向流
linux·算法·c#
XiaoZhenHua981 天前
C#工业机器视觉Recipe配方系统设计:多型号、多相机、多工位参数如何统一管理
c#·软件架构·机器视觉·工业自动化·工业软件·recipe
fujisheng6611 天前
FUI 导航实践:拆开 Layer、History、Coverage 与 Cache 的组合语义
c#·unity3d
淡海水1 天前
10-05-高级-模式匹配-CSharp如何改变与数据结构的交互方式
数据结构·算法·c#·模式匹配
XiaoZhenHua981 天前
C# WinForms + 西门子S7 + SQLite + EPPlus生产数据采集系统架构设计
系统架构·sqlite·c#
Lost of 程序猿1 天前
船岸数据同步链路实战:SendFlag、单调版本号与断网三天后的续传
后端·c#·asp.net
cjp5602 天前
012.UG二次开发,UG管道服务器与WPF管道通讯,传输JSON数据
c#
jiushidt2 天前
ArcGIS Pro Add‑in 打包流程详解
arcgis·c#·.net·arcgispro