私の電子アプリでモニターのリフレッシュレートを取得するにはどうすればよいですか?電子 - モニターのリフレッシュレートを取得
electron.screenモジュールは、表示に関するいくつかの情報を提供しますが、リフレッシュレートは提供しません。私もこれを行うノードパッケージを見つけることができませんでした。 Mac用の
私の電子アプリでモニターのリフレッシュレートを取得するにはどうすればよいですか?電子 - モニターのリフレッシュレートを取得
electron.screenモジュールは、表示に関するいくつかの情報を提供しますが、リフレッシュレートは提供しません。私もこれを行うノードパッケージを見つけることができませんでした。 Mac用の
未テスト
、私はおそらくだろうことはノード、電子およびコマンドラインの組み合わせを使用することです。
メインプロセスでは、私はそうのような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
ファイルをフィルタリングすることです。
execを使用することについて考えることさえできませんでした。さまざまなOSで可能なことがわかります。 – Joey