2017-03-02 15 views
0

私の電子アプリでモニターのリフレッシュレートを取得するにはどうすればよいですか?電子 - モニターのリフレッシュレートを取得

electron.screenモジュールは、表示に関するいくつかの情報を提供しますが、リフレッシュレートは提供しません。私もこれを行うノードパッケージを見つけることができませんでした。 Mac用の

答えて

2

未テスト

、私はおそらくだろうことはノード、電子およびコマンドラインの組み合わせを使用することです。

  • 最初の方法:

メインプロセスでは、私はそうのような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ファイルのコマンドは、OSからの監視情報を取得し、メインプロセスが読み込まれたときに実行されます。

その後、レンダリングプロセスで電子画面コマンドscreen.getPrimaryDisplay()を使用します(ビュー上のボタンをクリックすることができます)ので、そのコマンドの出力を目的のIDに対して解析します。

IPC経由でメインプロセスに送り返します。すべてのIDが必要な場合は、getAllDisplaysバリアントを使用します。

私は、上記のexeコマンドの結果を解析し、IDの値を一致させて、必要なものがあることを確認します。次に、GREP/AWK/SEDを使用して結果をフィルタリングしてリフレッシュレートを取得するコマンドを再実行します。

  • 第二の方法:

代替ノードでplistパッケージを使用し、そのよう/Library/Preferences/com.apple.windowserver.plistファイルをフィルタリングすることです。

+0

execを使用することについて考えることさえできませんでした。さまざまなOSで可能なことがわかります。 – Joey

関連する問題