如何在.NET中以隐私/隐身模式启动Microsoft Edge
在.NET中以隐私模式启动Microsoft Edge的解决方案
嘿,我之前刚好解决过这个问题!你之前用microsoft-edge:协议的方式确实没法传递启动参数,所以要换个思路——直接调用Edge的可执行文件,加上-inprivate参数就能启动隐私模式了,完全不需要第三方库,纯.NET原生代码就能搞定。
方法一:简单直接的写法
如果你的系统能直接找到msedge.exe(大部分情况下都可以),可以用下面的代码:
using System.Diagnostics; // 创建进程启动信息 var startInfo = new ProcessStartInfo { FileName = "msedge.exe", // 参数格式:-inprivate 后跟要打开的URL Arguments = "-inprivate http://www.google.com" }; // 启动进程 Process.Start(startInfo);
方法二:更可靠的路径获取方式
如果担心系统找不到msedge.exe的路径(比如不同版本的Edge安装路径可能有差异),可以从注册表读取官方的安装路径,这样兼容性更好:
using System.Diagnostics; using Microsoft.Win32; // 从注册表获取Edge的官方安装路径 var edgeExecutablePath = (string)Registry.GetValue( @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msedge.exe", "", null ); if (!string.IsNullOrEmpty(edgeExecutablePath)) { var startInfo = new ProcessStartInfo { FileName = edgeExecutablePath, Arguments = "-inprivate http://www.google.com" }; Process.Start(startInfo); } else { // 处理Edge未安装的情况 Console.WriteLine("未检测到Microsoft Edge浏览器"); }
关键说明
- 核心就是给Edge传递
-inprivate启动参数,这是官方支持的隐私模式启动指令 - 放弃
microsoft-edge:协议的调用方式,因为这种协议跳转无法附加启动参数 - 两种方法都不需要任何第三方库,完全依赖.NET的
System.Diagnostics和Microsoft.Win32(后者仅在方法二中需要)
内容的提问来源于stack exchange,提问作者Viking




