如何在我的电子应用中获得显示器的刷新率?
electron.screen模块提供有关显示的一些信息,但不提供刷新率。我找不到任何执行此操作的节点包。
答案 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
文件。