タイトル : Re^5: Windows 10 におけるデスクトップのハンドル取得 投稿日 : 2016/01/16(Sat) 02:49 投稿者 : 魔界の仮面弁士
> 因みに、 Windows 8.1 に戻したら、ここの色見本のページをどの画面に表示してもマウス直下のカラー値が > 取得できます。(ハンドルの取得の変更をしなくても、起動したままマウスの位置を変えるだけで) 自分の Win 10 端末は、dpi 設定を 175% にしているのですが(初期設定は 200%)、 この場合、 No.11589 のコードはそのままだと期待動作しないため、 Dim rate = 1.75 '← dpi 設定に合わせる Dim p1 = Cursor.Position Dim p2 As New Point(p1.X * rate, p1.Y * rate) col = ColorTranslator.FromWin32(GetPixel(hDC, p2.X, p2.Y)) に変更することで、正しい色を取得できるようになっています。 ※ Build 10586.63 な環境です。 また、dpiAware を True にするか、先述のスケール無効化を施した場合は、 元のコードのままでも取得することができています。 逆に、DPI 設定を高く設定してみた場合には、Windows 7 においても同様の問題が生じ、 元のコードでは期待する結果が得られていませんでした。 (8.1 ではないので、Per-Monitor DPI は利用できない状態です) しかし、そちらの言う「取得できない」状態というのは、 上記とは別の問題なのですね? |