close

找了好久 終於找到高DPI的解法

1.手動執行 執行檔>右鍵內容>變更高DPI設定>覆寫高DPIn縮放比例行為 打勾> 縮放執行者 選系統 (選應用程式無效)

2.  https://superuser.com/questions/1230346/overriding-high-dpi-scaling-from-the-command-line
 

~HIGHDPIAWARE Indicates value of Override high DPI scaling behavior (Application) //應用程式

~DPIUNAWARE Indicates value of Override high DPI scaling behavior (System) //系統

"~GDIDPISCALING DPIUNAWARE" Indicates value of Override high DPI scaling behavior (System Enhanced) add double quote also //系統(增強)

REG ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /V "%programfiles%\iTunes\iTunes.exe" /T REG_SZ /D ~HIGHDPIAWARE /F

實際執行以上網頁提供的這行不行 但如果手動作的話的確註冊檔會出現這個值 還要再研究一下

 

2019/11/2 更新 製作 INNO安裝包指令

[registry]

Root:HKCU;Subkey:Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers;ValueType: string; ValueName:{app}\MyApp.exe;ValueData:~ DPIUNAWARE;Flags: uninsdeletevalue

實測有效

 

3. https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setprocessdpiawarenesscontext

關鍵字  SetProcessDpiAwarenessContext  

看起來像是跟"覆寫高DPIn縮放比例行為"設定有關 還在研究中

 

4. https://www.youtube.com/watch?v=niCFI8kgoOY&feature=youtu.be

XE10解法 在 10:38

Delphi 7解法 在 25:22

 

XE10步驟 Project>Application>Manifest>DPI Awareness>System Aware

arrow
arrow

    抓狂小白 發表在 痞客邦 留言(0) 人氣()