2017-03-02 34 views
0

如何在電子應用程序中獲取顯示器的刷新率?電子 - 獲取顯示器的刷新率

electron.screen模塊提供了一些關於顯示的信息,但不提供刷新率。我找不到任何可以做到這一點的節點包。

回答

2

未經測試

對於MAC,我可能會做的是使用節點,電子和命令行的組合。

  • 第一種方式:

在主過程中,我會使用child_process模塊​​中的NodeJS像這樣:

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的監控信息,並將在您的主進程被讀取時運行。

之後,我會在渲染過程中使用Electron屏幕命令screen.getPrimaryDisplay()(這樣您可以單擊視圖上的某個按鈕或其他東西)並解析該命令的輸出以獲取所需的ID。

通過IPC發送回主流程。如果你想要所有的ID,然後使用getAllDisplays變種。

然後,我會解析上述exe命令的結果,並將ID匹配在一起,以確保你有你想要的。然後,重新運行該命令以獲取刷新率,並通過GREP/AWK/SED過濾結果。

  • 方式二:

另一種方法是使用在節點上的plist包,過濾/Library/Preferences/com.apple.windowserver.plist文件的方式。

+0

甚至沒有想過使用exec,我會看到各種操作系統的可能性,謝謝:) – Joey