电子 - 获取显示器的刷新率

时间:2017-03-02 03:51:59

标签: node.js electron

如何在我的电子应用中获得显示器的刷新率?

electron.screen模块提供有关显示的一些信息,但不提供刷新率。我找不到任何执行此操作的节点包。

1 个答案:

答案 0 :(得分:2)

<强>未测试

对于MAC,我可能会做的是使用Node,Electron和命令行的组合。

  • 第一种方式:

在主进程中,我将使用NodeJS中的child_process模块​​,如下所示:

const exec = require('child_process').exec;
exec('defaults read /Library/Preferences/com.apple.windowserver.plist', (error, stdout, stderr) => {
  if (error) {
    console.error(`exec error: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.log(`stderr: ${stderr}`);
});

exe命令从操作系统获取监视器信息,并在读取主进程时运行。

之后,我将在渲染过程中使用Electron屏幕命令screen.getPrimaryDisplay()(这样您可以单击视图上的按钮或其他内容)并解析该命令的输出以获取所需的ID。

通过IPC将其发回主流程。如果您想要所有ID,那么请使用getAllDisplays变体。

然后我会解析上面exe命令的结果,并将ID匹配在一起,以确保你有你想要的。然后,重新运行该命令以获得刷新率,并通过GREP / AWK / SED过滤结果。

  • 第二种方式:

另一种方法是在Node中使用plist包,并以此方式过滤/Library/Preferences/com.apple.windowserver.plist文件。