1

Python 2.7 を使用して、Surface Pro 第 1 世代 Win 8.1 PC からモニターの解像度を出力するために、このコードを使用しています。

   import ctypes
   from ctypes import windll
   user32 = ctypes.windll.user32
   screensize = (user32.GetSystemMetrics(0), user32.GetSystemMetrics(1))
   print "Screensize:", screensize

しかし、問題は、コマンド プロンプトを介して実行する場合と、Python シェルを介してスクリプトを実行する場合で、異なる結果が得られることです。

スクリプトを実行すると 1280x720 になりますが、IDLE シェルを使用すると 1920x1080 になります。

現在、これを Surface Pro で実行しているので、これが DPI スケーリングと関係があることはほぼ確実です (誰かがここで同様の問題を提起しました)。この場合、DPI スケーリングが Python IDLE で無効になっていることが原因であるに違いありません。

では、このコードの実行方法や実行しているマシンの種類、または DPI スケーリングが無効になっているかどうかに関係なく、このコードを実行したときに一貫した正確な結果が得られるようにするにはどうすればよいでしょうか? 多分CEF Python?

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

0

監視情報が必要な場合は、GetMonitorInfoを呼び出します。

于 2015-05-20T11:24:12.960 に答える