【问题标题】:Chrome Packaged App and Dual MonitorsChrome 打包应用程序和双显示器
【发布时间】:2013-06-24 01:51:52
【问题描述】:

我正在开发一个将使用多个显示器的打包应用程序。我需要能够在特定显示器中打开窗口。我也尝试过打开窗口,然后使用 javascript 将它们移动到监视器上。但是应用程序不会移动到活动显示的范围之外。

关于如何让它发挥作用的任何想法?

【问题讨论】:

  • 据我所见,Chrome 在涉及多个显示器时往往会让人讨厌。如果我更换主显示器(我有 3 台显示器),镀铬屏幕会变黑且无响应。这很可能是 chrome 中的一些内部问题阻止了这种情况。
  • 我的另一个想法是使用 Chrome Native Client SDK 进行窗口管理。但是,我对 SDK 了解不多。是否可以使用它来控制窗口?
  • 这主要用于将桌面应用程序集成到浏览器中。它可以很好地工作,这取决于您使用 chrome 获得的访问级别。
  • 这是一个内部应用程序,因此对权限或设置没有限制。如果可以在 Chrome 中使用,那么我将能够使用它。
  • 问题 236996:window.moveTo 不能跨多个监视器工作:code.google.com/p/chromium/issues/detail?id=236996

标签: google-chrome-app


【解决方案1】:

使用chrome.system.display.getInfo 可以获取每个活动显示器的显示信息。

使用displayInfo.workArea你可以得到每个显示器的工作区,你只要想一个大显示器,每个显示器就是一个工作区。有了这些信息,您可以使用

移动窗口

AppWindow#setBounds 到正确的监视器。请注意,AppWindow#moveTo 不工作。

【讨论】:

    【解决方案2】:

    使用AppWindow#setBounds

    例如

    chrome.app.window.get('mainWindow').setBounds({"height": 200, "left": 2000})

    在 v34 上测试

    轰隆隆。将此更改为正确答案。

    【讨论】:

      【解决方案3】:

      这不是我希望的解决方案,但正如其中一位 cmet 提到的那样,Chrome 和多显示器存在错误。就我而言,这是一个内部应用程序,所以我可以安装任何我需要的东西来完成这项工作。

      我的解决方案是创建一个控制台应用程序,它启动 chrome 应用程序,然后使用 Windows32 API 移动窗口。显然不理想,但它可以工作,用户仍然只需要一键启动应用程序。

      【讨论】:

        【解决方案4】:

        您可以编写一个 chrome 扩展来完成这项工作。在后台脚本中,您可以监听 chrome.windows.onCreated 事件并使用 chrome.windows.update 函数将窗口移动到其他监视器

        【讨论】:

          猜你喜欢
          • 2013-07-28
          • 1970-01-01
          • 2012-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-28
          相关资源
          最近更新 更多