gpt4 book ai didi

batch-file - 只允许一个 Chromium 应用程序实例

转载 作者:行者123 更新时间:2023-12-02 04:52:56 25 4
gpt4 key购买 nike

我有 Windows 7 上的 Chromium 源代码,并通过 .bat 文件使用 --app="..url"开关启动我的自定义应用程序。如何防止用户打开我的 Chromium 应用程序的多个实例?这包括直接打开 .exe、使用 .bat 文件以及从任务栏上的跳转列表菜单中选择“Chromium”。

最佳答案

如果使用 --app="...url"标志启动应用程序,则以下解决方案将阻止打开 Chrome 的更多“实例”。我说“实例”是因为 Chrome 实际上并不创建新的 Chrome 基础进程。相反,它会打开一个新窗口,其中包含用于呈现该特定窗口的进程。

因此,当应用程序处于 --app 模式时,您需要做的就是阻止打开新窗口。这可以通过修改 Chromium 源代码 Application_launch 类中的 OpenApplicationWindow() 方法来实现:chrome/browser/ui/extensions/application_launch.cc

... 

OpenApplicationWindow(const AppLaunchParams& params) {
browser = chrome::FindBrowserWithProfile(profile, params.desktop_type);

#endif

WebContents* web_contents;
if (!browser) {
browser = new Browser(browser_params);
web_contents = chrome::AddSelectedTabWithURL(
browser, url, content::PAGE_TRANSITION_AUTO_TOPLEVEL);
web_contents->GetMutableRendererPrefs()->can_accept_load_drops = false;
web_contents->GetRenderViewHost()->SyncRendererPrefs();
}
else {
web_contents = browser->tab_strip_model()->GetActiveWebContents();
}

browser->window()->Show();

...

*注意:此方法中应该已经有一些 Windows 8 代码。这个想法是消除 Windows 8 Metro Mode 的条件,因此始终阻止新的 Windows。

关于batch-file - 只允许一个 Chromium 应用程序实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26045692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com