tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルディスプレイの拡大率変更(100%)
記事No16687
投稿日: 2024/07/10(Wed) 08:21
投稿者悩んでいる人
Visual Basic6 , Windows 10 Pro

ディスプレイの画素の変更は、サンプルソースは、ありましたが
DPI(スケーリング)の変更、拡大率(125%→100%)に変更する方法についてどのようにすれば良いのか
ご教示いただけますと幸いです。

[ツリー表示へ]
タイトルRe: ディスプレイの拡大率変更(100%)
記事No16688
投稿日: 2024/07/10(Wed) 13:50
投稿者魔界の仮面弁士
> DPI(スケーリング)の変更、拡大率(125%→100%)に変更する方法

DPI 設定の変更後は、Windows からサインアウト(ログオフ)&再サインイン(ログイン)が必要です。
再起動でも可。

自作するのではなく、出来合いのものでも良ければ、こんなバッチファイルがあります。
https://faq-rbsl.nec.co.jp/hc/ja/articles/4402310929817-%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E6%8B%A1%E5%A4%A7%E7%8E%87100-%E8%A8%AD%E5%AE%9A%E3%83%84%E3%83%BC%E3%83%AB


設定項目は、レジストリの
 HKEY_CURRENT_USER\Control Panel\Desktop
というキーで管理されていますので、自作するのであればレジストリ操作を行うことになります。
https://learn.microsoft.com/ja-jp/previous-versions/windows/it-pro/windows-8.1-and-8/dn528846%28v=win.10%29?WT.mc_id=DT-MVP-8907
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/dpi-related-apis-and-registry-settings?WT.mc_id=DT-MVP-8907


Win8DpiScaling
 ※[すべてのディスプレイに同じスケール レベルを選択する]チェック ボックス相当
 0x0 Win8.1 の既定値。ディスプレイごとに異なるスケール係数を適用。
 0x1 Win8以下の動作。すべてのディスプレイに同じスケール係数を適用。

LogPixels
 ※[すべてのディスプレイで同じ拡大率を使用する]モードの DPI 値 (100%〜500%)
 0x60 (96):すべてのディスプレイで 100% のスケーリング
 0x78(120):すべてのディスプレイで 125% のスケーリング
 0x90(144):すべてのディスプレイで 150% のスケーリング
 0xC0(192):すべてのディスプレイで 200% のスケーリング
 その他  :すべてのディスプレイで (値÷96)% のスケーリング

DesktopDPIOverride
 ※Windows 8.1 スケーリング モードで[ディスプレイごとに異なる拡大率を使用する]時
 負の値:各ディスプレイのスケール係数をこの単位数だけレベルダウンさせる。
     例えば既定のスケーリングが150%の場合、-1 は 125%、-2 は 100% に対応する。
 0   :各ディスプレイの既定値のスケール係数をそのまま使用する。
 正の値:各ディスプレイのスケール係数をこの単位数だけレベルアップさせる。
     例えば既定のスケーリングが150%の場合、+1 は 200% に対応する。
このモードでは、全てのディスプレイのスケール係数が 100%, 125%, 150%, 200% の 4 種に制限され、
かつ、利用可能なスケール係数が、画面の縦方向解像度によって下記のように決定される。
 1440以上:100%、125%、150%、200%
 1080以上:100%、125%、150%
  900以上:100%、125%
  900未満:100%のみ

http://moonseiya7.livedoor.blog/archives/773842.html

[ツリー表示へ]