1

我正在将 AppJS 视为构建跨浏览器应用程序的可能候选者。AppJS 使用带有 NodeJS 挂钩的 Chromium 窗口运行 HTML5 内容。

是否有一个 NodeJS 模块可以为我提供当前活动显示的枚举?我需要支持双显示器设置,并且需要了解每个显示器的范围。

到目前为止,我已经搜索了 Node npm 目录,但没有运气。

更新

根据 sihorton 的回答,我正在使用 javascript 方法。浏览器安全性禁止我的第一种方法在普通 Chrome 中工作,但我回家后会在 AppJS chromium 上尝试这个。代码在这里这里

基本方法是运行如下代码:

OpenWindow('http://jsbin.com/axiwad/3/','test',400,500);

然后打开的窗口运行:

  window.moveTo(screen.width+2, 0);

  setTimeout(function(){
    $(".s2w").html(screen.width+2);
    $(".s2h").html(screen.height);
  }, 500);

当然,问题是浏览器不允许moveTo活动屏幕边界之外。AppJS chromium fork 是否允许这样做还有待观察。

4

1 回答 1

1

如果您正在运行 AppJS,那么您可以使用在 AppJS 的铬窗口部分中运行的 javascript 中的技巧进行屏幕检测。我快速谷歌搜索找到了以下链接,我相信还有其他链接,如果你进行了足够的实验,那么希望你会得到一个跨平台的解决方案:-

http://archive.cpradio.org/code/javascript/dual-monitors-and-windowopen/

如果您想保持节点原生,另一种方法是实现一个通用 api,然后为每个平台实现单独的代码。目前我个人不知道有什么更好的解决方案,显然这比上面的 javascript 解决方案更可取。但是,如果您必须走这条路线,那么就会有节点边缘:

http://tjanczuk.github.io/edge

这使您可以从 nodejs 运行 .net 代码,因此您应该能够使用该 api 覆盖 windows 机器。对于 linux,您可以考虑连接到 dbus:

https://github.com/sidorares/node-dbus https://npmjs.org/package/dbus-native

希望您可以在 Internet 上找到适当的示例代码,以使用 dbus 和 .net 获取显示属性,然后将它们连接在一起并从那里开始。

于 2013-06-25T07:57:55.963 回答