iMac と接続されたプロジェクターのディスプレイ解像度を 1024x768、85 Hz、32 ビット カラーにリセットする簡単なアプリを作成しようとしています。
プロジェクタが VGA または HDMI で Mac に直接接続されている場合、CGDisplayCopyAllDisplayModes() 関数は、適用したい設定を含むモードのリストを提供します。しかし、私の大学では Extron VGA ウォール ボックスを使用して VGA ワイヤをプロジェクターに接続しているため、CGDisplayCopyAllDisplayModes() がはるかに小さい (800x600 と 640X480 のみ) モードのリストを提供します。また、ウォール ボックスを使用するときのディスプレイの名前は、Np-511 やプロジェクターの名前とは対照的に、VGA ディスプレイです。奇妙なことに、System Preferences->Display には 1024x768 の設定が表示され、それを適用することもできます。
プロジェクターのモードのより大きなリストを取得する方法、1024x768 モードを最初から作成して適用する方法 (プロジェクターがそれをサポートしていることを確認済み)、または単にシステム環境設定でそのモードを選択させる方法はありますか? 後者を行うためのアップルスクリプトをすでに作成しましたが、接続されているプロジェクターに応じて表示設定が変化するため、より一般的なソリューションが必要です。
あなたの助けを楽しみにしています!使用したコードをいくつか追加しましたが、それが役立つ場合はさらに含めることができます。
CGGetOnlineDisplayList (MAX_DISPLAYS, displays, &numDisplays); // to get list of display ids
// ... now iterating over list of displays
CFArrayRef modeList = CGDisplayCopyAllDisplayModes (displays[i], NULL);