Windows上で接続されたLCDモニタの「最高の」解像度またはネイティブ解像度を見つける必要があります(プログラムで設定し、それを行う方法を知っています)。私は現在のWindowsの解像度は必要ないし、 CRT /プロジェクターを心配する。WindowsのプライマリモニタのNATIVEハードウェア解像度を照会するにはどうすればよいですか?
私はそれがこのプログラムで作業を見てきましたので、私はそれが投じたにもかかわらず可能です知っている: http://www.entechtaiwan.com/util/moninfo.shtm
それはモニターに直接話をしてEDID情報を照会するのがベストでしょう。しかし、私はそれがレジストリにキャッシュされ、HKLM \ SYSTEM \ CurrentControlSet \ Enum \ DISPLAYから問題を掘り起こすことはできませんでしたが、現在のプライマリモニタとどのようにデータをマッチさせるのか分かりません。関連するコードは「doesnのように、 http://www.koders.com/python/fid7FCCE3C908F376DC62F06CAD9B11C6D7C1CFA78F.aspx
残念ながら、私のpythonにCプログラムを変換する多くの問題を抱えている: http://www.tech-archive.net/Archive/Development/microsoft.public.development.device.drivers/2004-08/0294.html と同様のPythonプログラム:
は、私は、このCのプログラムを見つけましたwin32allモジュールにあるようです。私はそれをコンパイルしようとしますが、大きなコンパイラのためのディスクスペースを持たず、何年もCを使用していません。私もctypesで私の要素のビットです。私の計画Bは、EnumDisplaySettings()を使用して解像度の最大値を見つけてそれに設定します。 PC上で私はそれを試しましたが、正しい解決策を与えますが、それでも問題がある可能性があります。
私はPythonの解決策を望んでいますが、おそらく誰かがCプログラムを修正して解像度を吐き出してコンパイルする手助けをすることができます。前もって感謝します。
更新:
私は潜在的な解決策を見つけました。私は現在、WMIを読んで、利用可能な(オフラインではない)モニタを見つけ、そのPNPデバイスIDを取得し、ID値を持つサブキーのレジストリからEDIDを読み取ります。次に、バイト38と39のデータを解析して計算します。あまり清潔ではありませんが、結果を得ています。これが合理的なやり方であれば、私はこの質問を終わらせます、ありがとう。
Pelles CやDevCppのようにかなりコンパクトなコンパイラもあります。 –
おかげで、ありがとう。 –
質問を終了しないで、新しい回答であなた自身に答えてください。明日あなたはあなたがしたいならあなた自身の答えを受け入れることさえできます。これは面白かったです。 –