可以使用脚本改变屏幕分辨率吗?

可以使用脚本改变屏幕分辨率吗?

我们有一个工作站,有四台显示器,由多个用户共享。根据用户的不同,所有四台显示器的屏幕分辨率都需要更改。我正在寻找一种方法来简化/自动化更改分辨率的过程,可能使用某种脚本?可以做到吗?

答案1

重置开关是一个可以执行您想要的操作的实用程序。它是一个命令行工具,您可以发送分辨率、颜色深度和刷新率 - 例如

resswitch.exe 800 600 32 60

您可以使用设备开关来指定命令适用于哪个设备,并指定设备的名称。因此,对于 4 个显示器,您最好创建一个包含 4 个命令的批处理文件。

要获取设备的名称,您可以使用 ResCopy(也包含在该 zip 文件中)来显示它们。

答案2

#This script will change the display resolution of a remote PC
#The user would only need to log off to see changes
#Resolution is changed thru the registry.
#The Registry path may be slightly different based on equipment type

$Computer = Read-Host -Prompt 'ENTER PC NAME TO CHANGE RESOLUTION'
$RES1 = Read-Host -Prompt 'ENTER FIRST RESOLUTION PARAMETER (EX. 1024)'
$RES2 = Read-Host -Prompt 'ENTER SECOND RESOLUTION PARAMETER (EX. 768)' 
 
Invoke-Command -Computername $Computer -Scriptblock{
param($RES1, $RES2)
"RES1: $RES1"
"RES2: $RES2"

$Key="HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\HWP*\00"
Set-ItemProperty -Path $Key -Name PrimSurfSize.cx -Value $RES1 -Force
Set-ItemProperty -Path $Key -Name PrimSurfSize.cy -Value $RES2 -Force

$Key="HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\RTK*\00"
Set-ItemProperty -Path $Key -Name PrimSurfSize.cx -Value $RES1 -Force 
Set-ItemProperty -Path $Key -Name PrimSurfSize.cy -Value $RES2 -Force

$Key="HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\MSH*\00"
Set-ItemProperty -Path $Key -Name PrimSurfSize.cx -Value $RES1 -Force 
Set-ItemProperty -Path $Key -Name PrimSurfSize.cy -Value $RES2 -Force
}-ArgumentList $RES1, $RES2

POWERSHELL -NOEXIT

相关内容