我在Windows 7上拥有Chromium源代码,并通过.bat文件使用--app="..url"开关启动我的自定义应用程序。 如何防止用户打开多个Chromium应用程序实例? 这包括直接打开.exe,使用.bat文件以及从任务栏的跳转列表菜单中选择"Chromium"。
我在Windows 7上拥有Chromium源代码,并通过.bat文件使用--app="..url"开关启动我的自定义应用程序。 如何防止用户打开多个Chromium应用程序实例? 这包括直接打开.exe,使用.bat文件以及从任务栏的跳转列表菜单中选择"Chromium"。
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模式的条件,以便始终防止新窗口。