2017-06-03 14 views
-1

私は1920x1080に関連した表示と選択モードを列挙する小さなツールをやっています。私は自分のツールを私のユーザーにリリースしました。テレメトリツールのおかげで多くのレポートを受け取りました。私のEnumDisplaySettingsツールは私のユーザーの一部では機能していないようです:EnumDisplaySettingsの間違った解像度

例1:

EnumDisplaySettings : 
70 1680 1050 
EnumDisplaySettings : 
71 2715 1527 

win7の - グラフィックカード:NVIDIAのGeForce GTX 960 CPU:インテル(R)Core(TM)i5-4590 CPUの@の3.30GHz

例2:

EnumDisplaySettings : 
64 1768 992 
EnumDisplaySettings : 
65 2715 1527 

win7の - グラフィックカード:NVIDIAのGeForce GTX 1060年6ギガバイト CPU:インテル(R)Core(TM)i5-3350PのCPU @ 3.10GHzの

あなたは他の "report_error_x.txt" を見ることができますここに:http://www.gaza-tools.com/koh/

私のコードはここにある:https://github.com/Gazatus/KoH_Ultimate_Edition/blob/master/HD%20-%20Scripts/patch1920.py

簡体コード:

mode = 0 
smode = win32api.EnumDisplaySettings(None, mode) #first display mode infos 
     if smode.PelsWidth == 1920 and smode.PelsHeight == 1080: 
      succes = 1 
     else: 
      mode += 1 #increment mode and return to top 

ありがとうございます!

+0

(質問:なぜwin32apiがこれらの奇妙な解像度を発見したのですか?これらのコンピュータはすべて1920x1080ディスプレイを持つようです)) –

答えて

0

あなたのプロセスはDPI virtualizationの対象です。マニフェストにDPI認識設定を追加するか、起動時にSetProcessDPIAwareまたはSetProcessDPIAwarenessと呼び出してください。

+0

ありがとう!私はWinAPI関数のファミリではなく、私はPython上でコード化し、科学のためにのみコード化しています。どうやって使用するのか説明できますか?私は既に赤です:https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms633543.aspx –

+0

私はドキュメントにリンクしました。あなたはそれを読んでいますよね? –

+0

私はちょうど最初に行を置く必要があることを理解している場合:user32.SetProcessDPIAware()、それは? –

関連する問題