从命令行覆盖高 DPI 缩放

从命令行覆盖高 DPI 缩放

我正在 Windows 10 上编译和构建一个 OpenCV 应用程序,该应用程序显示一些图像。
我想覆盖高 DPI 缩放行为并将其设置为“应用程序”。

我可以通过以下方式在文件上完成此操作.exe:右键单击->属性->兼容性选项卡并选中复选框。:

在此处输入图片描述

是否有一个命令行工具可以用来作为脚本的一部分来执行该操作?

答案1

你制作一个 bat 文件脚本。

就是这样。

确保应用程序放置的位置。

如果应用程序是 64 位"%programfiles%\<appfoldername>\<app>.exe"

如果应用程序是 32 位"%programfiles(x86)%\<appfoldername>\<app>.exe"

~HIGHDPIAWARE表示覆盖高 DPI 缩放行为的值 (应用)

~DPIUNAWARE表示覆盖高 DPI 缩放行为的值 (系统)

"~GDIDPISCALING DPIUNAWARE"表示覆盖高 DPI 缩放行为的值 (系统增强)还添加双引号

我正在为 iTunes (64 位) 执行此操作。

特定用户

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

所有用户

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

答案2

根据之前的建议,我添加了 reg 值HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,其值为~ DPIUNAWARE包括波浪号后的空格。

然而,事实证明,这不起作用,除非我在中设置并删除当前用户的相应设置HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

因此,我的解决方案遵循上述解决方案,但需要提前设置和重置 HKCU 键。

相关内容