You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在.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.DiagnosticsMicrosoft.Win32(后者仅在方法二中需要)

内容的提问来源于stack exchange,提问作者Viking

火山引擎 最新活动