我想创建一个键盘快捷键,以便通过创建一个在检测到键盘快捷键时运行的小宏来快速轻松地更改我的机器上的 DPI 比例。
在 Windows 8.1 中,可以通过控制面板设置桌面显示 DPI 比例(如下图所示),并立即生效。或者,也可以在注册表中手动设置比例,但这样做需要用户登录和退出或重新启动机器才能生效(并且只能模仿“我的所有显示器都使用一个缩放级别”选项)。
如何通过命令行或以其他编程方式设置 DPI 比例?
答案1
显示器独立缩放的正确注册表项HKCU:\Control Panel\Desktop
值为LogPixels
。有关所有 DPI 相关注册表设置的更多信息,请参见此处:http://technet.microsoft.com/en-us/library/dn528846.aspx#system当您为每个显示器启用不同的缩放比例时,还会有相关信息。
我编写了一个小型 PowerShell 脚本,它根据当前缩放比例更改所有显示器的 DPI 缩放比例并执行用户注销,因此当我将设备放到不同的显示器上时,我只需要执行该脚本。
cd 'HKCU:\Control Panel\Desktop'
$val = Get-ItemProperty -Path . -Name "LogPixels"
if($val.LogPixels -ne 96)
{
Write-Host 'Change to 100% / 96 dpi'
Set-ItemProperty -Path . -Name LogPixels -Value 96
} else {
Write-Host 'Change to 150% / 144 dpi'
Set-ItemProperty -Path . -Name LogPixels -Value 144
}
logoff;exit
我认为您可以根据 TechNet 文章的信息来修改它以满足您的需要。
答案2
有一个 PowerShell 脚本可以更改屏幕分辨率,这可能会有所帮助。我不知道它在 Windows 8.1 上所做的更改是否会立即生效,但如果幸运的话,这个脚本可能使用与控制面板小程序相同的 API。
完整Set-ScreenResolution.ps1
脚本可在脚本存储库,但由于篇幅过长,不便在此重现。
作者对此的描述可以在文章中找到:
嘿,脚本小伙!如何通过 Windows PowerShell 更改我的桌面显示器分辨率?。
有关使用它的一些信息可以在文章中找到:
使用 Powershell 更改屏幕分辨率。