我如何在电子应用中获取显示器的刷新率?
电子。屏幕模块提供了一些有关显示器的信息,但不提供刷新率。我找不到任何这样做的节点软件包。
未测试
对于Mac,我可能要做的是使用节点,电子和命令行的组合。
- 第一种方法:
在主要过程中,我将在nodej中使用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命令从OS获取监视器信息,并在读取主过程时运行。
之后,我将在渲染过程中使用电子屏幕命令 screen.getPrimaryDisplay()
(因此您可以单击视图上的按钮或其他内容),并将该命令的输出分析为所需的ID。
通过IPC将其发送回主过程。如果您想要所有ID,请使用GetAllDisplays变体。
然后,我将从上述EXE命令中解析结果,并将ID匹配在一起,以确保您拥有所需的内容。然后,重新运行命令以通过GREP/AWK/SED过滤结果获得刷新率。- 第二种方式:
一种替代方法是在节点中使用PLIST软件包,然后以这种方式过滤/Library/Preferences/com.apple.windowserver.plist
文件。