给App指定msedgewebview2.exe,不使用默认WebView2

现在很多程序通过WebView2访问网络。防火墙难以防护不该访问网络的app。

为了能控制App能访问网络,需要复制或新装WebView2给App专用,
这样就可以控制App和专用WebView2的网络访问。

  • 核心机制:WebView2Loader.dll 的运行时解析顺序(①程序代码传参→②环境变量→③按应用注册表策略→④AppX→⑤系统 Evergreen),以及"不会因WebView2放在 exe 旁就被自动发现"这个关键事实。
  • 专用方案:注册表策略(值名 = 目标进程 exe 名),无批处理、持久、且只影响那一个程序。

 

以腾讯视频为例,腾讯视频是利用WebView2播放的视频,因此需要给腾讯视频的WebView2开放网络访问,遂复制WebView2到腾讯视频目录,
让腾讯视频使用复制后的WebView:

image

 

编辑注册表reg文件:

Windows Registry Editor Version 5.00

; ============================================================
; 让腾讯视频(QQLive.exe) ONLY 使用复制版 WebView2,
; 不影响系统其他 WebView2 应用。无需批处理文件。
; 双击本文件 -> 允许合并到注册表即可(HKLM 部分需管理员权限)。
; ============================================================

; 机器策略:对所有用户 / 服务拉起的 QQLive 生效(x64 原生视图)
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder]
"QQLive.exe"="D:\\Program Files\\Tencent\\QQLive\\WebView2Runtime"

; 32 位视图(保险,loader 位ness 兼容)
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder]
"QQLive.exe"="D:\\Program Files\\Tencent\\QQLive\\WebView2Runtime"

; 用户策略:覆盖那些只读 HKCU 的 loader
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder]
"QQLive.exe"="D:\\Program Files\\Tencent\\QQLive\\WebView2Runtime"

  reg合并到注册表后,启动腾讯视频
查看使用的WebView2:
PowerShell中运行:

Get-CimInstance Win32_Process -Filter "Name='msedgewebview2.exe'" | ForEach-Object {
  [PSCustomObject]@{Parent=(Get-CimInstance Win32_Process -Filter ('ProcessId='+$_.ParentProcessId)).Name; Path=$_.ExecutablePath}
}

  image

 

 可见QQLive.exe调用的是复制的专用msedgewebview2.exe

另外还有一种方案,需要用批处理启动app:

通过临时设置 WebView2路径环境变量WEBVIEW2_BROWSER_EXECUTABLE_FOLDER 等于专用WebView的目录:

@echo off
:: ============================================================
::  Launcher for Tencent Video (QQLive) that forces it to use
::  the COPIED WebView2 runtime under its own install folder.
::
::  WHY this works: the WebView2 loader honors the env var
::  WEBVIEW2_BROWSER_EXECUTABLE_FOLDER with the HIGHEST priority,
::  and an env var set here is inherited ONLY by QQLive.exe and
::  its child msedgewebview2.exe process -- NOT by any other app
::  on the machine. So the system WebView2 stays the default
::  everywhere else.
::
::  Usage: double-click this file instead of the normal QQLive
::  shortcut. (The one-time copy + ACL step is done by
::  qqlive_webview2_redirect.bat, already run.)
:: ============================================================

set "WEBVIEW2_BROWSER_EXECUTABLE_FOLDER=D:\Program Files\Tencent\QQLive\WebView2Runtime"

start "" "D:\Program Files\Tencent\QQLive\QQLive.exe"

  



posted @ 2026-08-09 20:05  子航  阅读(13)  评论(0)    收藏  举报