tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 は利用できない状態です)


しかし、そちらの言う「取得できない」状態というのは、
上記とは別の問題なのですね?

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。