禁止 Chrome 应用程序中的屏幕共享权限对话框

问题描述 投票:0回答:3

我们正在实现一个 Chrome 应用程序,该应用程序在 Windows 下的特定计算机上的受控环境中运行。我们可以完全控制环境,包括使用命令行参数运行 Chrome、更改注册表设置等。

该应用程序的部分功能是捕获屏幕截图并将其传输到远程计算机。启动此功能后,Chrome 会显示权限对话框(“Chrome 想要共享您的屏幕...”)并需要用户进行验证。

在我们的应用程序中,这是很差的用户体验,我们希望找到一种方法来抑制此对话框。正如我所提到的,我们可以完全控制主机。除了制作我们自己的自定义 Chrome 构建之外,还有什么方法可以做到这一点吗?

google-chrome google-chrome-extension screenshot google-chrome-app
3个回答
3
投票

尝试使用命令行参数运行 Chrome

--auto-select-desktop-capture-source="Entire screen"
。来源:铬问题。另相关:关于强制安装扩展和桌面共享的问题

如果您想自己编译 chrome, 将是将您自己的扩展列入白名单的一个很好的起点


1
投票

对于 C# Selenium 用户。请勿将

"Entire screen"
用双引号括起来。

将其用作

--auto-select-desktop-capture-source=Entire screen
//<--observe no double quotes

var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("--auto-select-desktop-capture-source=Entire screen");
var driver = new ChromeDriver(chromeOptions);

0
投票

好吧,我也有一个问题,我正在edgewebview2上做上面的标志

` std::wstring 参数;

args.append(L" --ignore-certificate-errors");
args.append(L" --hide-scrollbars");
args.append(L" --autoplay-policy=no-user-gesture-required");
args.append(L" --auto-select-desktop-capture-source=Screen 1");
args.append(L" --enable-usermedia-screen-capturing");

auto options = Microsoft::WRL::Make<CoreWebView2EnvironmentOptions>();
options->put_AdditionalBrowserArguments(args.c_str());

HRESULT res = CreateCoreWebView2EnvironmentWithOptions(
    nullptr, userDataFolder, options.Get(),
    new webview2_com_handler(wnd, cb,
                             [&](ICoreWebView2Controller *controller) {
                               m_controller = controller;
                               m_controller->get_CoreWebView2(&m_webview);
                               m_webview->AddRef();

                               flag.clear();
                             }));` 

在双显示器情况下,如何选择屏幕 2,我尝试了“屏幕 2”,但它似乎只读取屏幕,所以它总是抓取屏幕 1,感谢任何帮助。

© www.soinside.com 2019 - 2024. All rights reserved.