找了好久 終於找到高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