私は興味深い問題に遭遇しました。少なくともVistaでは、デスクトップDPI設定が100%に設定されていない場合、getSystemMetrics(SM_CXSCREEN)は誤った値を返します。たとえば、1366x768の画面で150%を試したところ、getSystemMetrics()は1366ではなく911を返します(および1366 / 1.5〜911)
MSDNによると、getSystemMetrics(SM_CXSCREEN)はピクセルを返すため、この値はDPI設定の影響を受けないと思いましたが、影響を受けます。では、実際のスケーリングされていない画面解像度を見つけるためのより安全な方法はありますか?