本文目录导读:

我来为您提供一个定时切换屏幕刷新率的脚本,这个脚本可以按照设定的时间自动切换显示器刷新率。
Windows 版本 (PowerShell 脚本)
# 定时切换屏幕刷新率脚本 - Windows
# 需要管理员权限运行
# 配置区域
$MonitorName = "Generic PnP Monitor" # 显示器名称(可选,留空则使用主显示器)
$RefreshRate1 = 60 # 刷新率1 (Hz)
$RefreshRate2 = 144 # 刷新率2 (Hz)
$IntervalMinutes = 30 # 切换间隔(分钟)
# 获取显示器信息
function Get-MonitorInfo {
$monitors = Get-WmiObject -Namespace "root\wmi" -Class "WmiMonitorListedSupportedSourceModes"
return $monitors
}
# 设置刷新率
function Set-RefreshRate {
param($RefreshRate)
$monitor = Get-WmiObject -Namespace "root\wmi" -Class "WMIMonitorID" | Select-Object -First 1
if (-not $monitor) {
Write-Error "未找到显示器"
return $false
}
# 使用QRes工具或DisplaySwitch设置分辨率(需要第三方工具QRes)
# 或者使用下面的方法
try {
# 获取当前显示设置
$display = Get-WmiObject -Namespace "root\cimv2" -Class "Win32_VideoController" | Select-Object -First 1
# 这里需要一个外部工具来设置刷新率,Windows原生PowerShell功能有限
Write-Host "尝试设置刷新率为 ${RefreshRate}Hz..." -ForegroundColor Yellow
# 使用QRes工具(需要下载)
$qresPath = "C:\Tools\QRes.exe"
if (Test-Path $qresPath) {
& $qresPath /r:$RefreshRate
Write-Host "刷新率已切换至 ${RefreshRate}Hz" -ForegroundColor Green
return $true
}
else {
Write-Warning "QRes工具未找到,请下载并放置在 C:\Tools\QRes.exe"
Write-Host "下载地址:http://www.timworx.com/qres/"
return $false
}
}
catch {
Write-Error "设置刷新率失败: $_"
return $false
}
}
# 主循环
Write-Host "屏幕刷新率定时切换脚本已启动" -ForegroundColor Cyan
Write-Host "运行间隔: ${IntervalMinutes} 分钟" -ForegroundColor Cyan
Write-Host "刷新率切换范围: ${RefreshRate1}Hz ↔ ${RefreshRate2}Hz" -ForegroundColor Cyan
Write-Host "按 Ctrl+C 停止运行`n" -ForegroundColor Cyan
$currentRate = $RefreshRate1
while ($true) {
$targetRate = if ($currentRate -eq $RefreshRate1) { $RefreshRate2 } else { $RefreshRate1 }
$time = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Write-Host "[${time}] 正在切换至 ${targetRate}Hz..." -ForegroundColor Magenta
if (Set-RefreshRate -RefreshRate $targetRate) {
$currentRate = $targetRate
}
Write-Host "等待 ${IntervalMinutes} 分钟后再次切换..." -ForegroundColor Gray
Start-Sleep -Seconds ($IntervalMinutes * 60)
}
使用说明
Windows 版本:
-
下载 QRes 工具:
- 访问 http://www.timworx.com/qres/
- 下载 QRes.exe
- 放置在
C:\Tools\目录
-
运行脚本:
# 以管理员身份运行 PowerShell .\RefreshRateSwitcher.ps1
修改配置:
脚本顶部有配置区域,您可以根据需要修改:
$RefreshRate1和$RefreshRate2:切换的刷新率$IntervalMinutes:切换间隔(分钟)
进阶版本 (支持多显示器)
# 多显示器支持版本
param(
[int]$RefreshRate1 = 60,
[int]$RefreshRate2 = 144,
[int]$Interval = 30,
[switch]$UseMultiMonitors
)
# 使用 NirCmd 工具(推荐替代QRes)
$nircmdPath = "C:\Tools\nircmd.exe"
function Set-MultiMonitorRefreshRate {
param($Rate)
if (Test-Path $nircmdPath) {
# 设置所有显示器刷新率
& $nircmdPath setdisplay monitor:all refresh $Rate
Write-Host "所有显示器刷新率已设置为 ${Rate}Hz" -ForegroundColor Green
}
else {
Write-Error "NirCmd 未找到,请下载: https://www.nirsoft.net/utils/nircmd.html"
}
}
# 主程序
Write-Host "多显示器刷新率切换器" -ForegroundColor Cyan
Write-Host "配置: $RefreshRate1 Hz / $RefreshRate2 Hz"
Write-Host "间隔: $Interval 分钟"
$current = $RefreshRate1
while ($true) {
$next = if ($current -eq $RefreshRate1) { $RefreshRate2 } else { $RefreshRate1 }
Set-MultiMonitorRefreshRate -Rate $next
$current = $next
Start-Sleep -Seconds ($Interval * 60)
}
自动化任务计划
如果不想手动运行脚本,可以创建 Windows 任务计划程序:
- 打开任务计划程序
- 创建基本任务
- 设置触发器为"每天"或特定时间
- 操作选择"启动程序",选择 PowerShell 并添加脚本路径
这样脚本会在指定时间自动运行。
注意事项
- 管理员权限:修改刷新率需要管理员权限
- 兼容性:部分显示器可能不支持某些刷新率
- 测试建议:建议先手动测试目标刷新率是否可用
- 工具依赖:需要使用第三方工具(QRes 或 NirCmd)
请根据您的实际需求调整脚本参数,如果您需要其他功能的变体,请告诉我!