使用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 项目 使用

相关推荐
用户7884773163418 小时前
WinForms 迁移 WPF:Upgrade Assistant 覆盖 30%,剩下 70% 我手写了六周
c#
寂寞的船1 天前
【Unity知识速递】第13期 Unity 内存泄漏排查实战:从 Memory Profiler 到 Lua 引用泄漏的生产级全链路诊断
unity·junit·c#·游戏引擎·lua
用户3721574261352 天前
C# 提取 PDF 附件:包括文档附件和页面注释附件
c#
寂寞的船2 天前
【Unity Bug挑战】第12期 Awaitable 二次 await 死锁之谜 —— 为什么同一个异步操作等两次就卡死?
unity·c#·游戏引擎·bug
huaqianzkh3 天前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
用户3721574261354 天前
C# 实现 Excel 单元格保护:锁定公式并允许编辑指定区域
c#·ai编程·编程语言
公子小六4 天前
基于.NET的Windows窗体编程之WinForms数据持久化(1)
windows·microsoft·c#·.net·winforms
三雷科技4 天前
第6章第4节:自定义分词器
开发语言·c#
zhanghaha13144 天前
C# 系列教程_12 字符串 string 保姆级系统教程(面向新手,大量示例 + 原理讲解)
开发语言·数据库·c#
Coder_Shenshen5 天前
罗克韦尔ACD工程归档离线变量树解析
算法·c#