6 windows-registry powershell themes windows-11
我正在尝试使用任务计划程序在 Windows 个性化设置中安排浅色模式/深色模式,以便 Windows 主题颜色会根据一天中的时间而变化,这对眼睛也更好。
这两个键是唯一负责它的:
# Set Windows Personalization, color settings, to enable Light mode for System
$RegistryPath = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize'
$Name = 'SystemUsesLightTheme'
$Value = '1'
If (-NOT (Test-Path $RegistryPath)) { New-Item -Path $RegistryPath -Force | Out-Null }
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force
# Set Windows Personalization, color settings, to enable Light mode for Apps
$RegistryPath = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize'
$Name = 'AppsUseLightTheme'
$Value = '1'
If (-NOT (Test-Path $RegistryPath)) { New-Item -Path $RegistryPath -Force | Out-Null }
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force
Run Code Online (Sandbox Code Playgroud)
运行该命令仅部分地将 Windows 主题从深色变为浅色,例如任务栏和文件资源管理器未更改,但设置页面本身和其他一些区域发生了更改。
除了注册表之外,还有哪些组件负责执行这些个性化任务?
我跟踪了更改主题时的设置过程,除了这两个注册表项之外,没有其他注册表项被修改。
使用设置更改主题是迄今为止我发现正确执行主题更改的唯一方法。
小智 3
好吧,事实证明我根本不需要注册表。
Windows 11将内置主题保存在此目录中:
C:\Windows\Resources\Themes
Run Code Online (Sandbox Code Playgroud)
检查那里的 ACL 后,我注意到所有用户都具有读取和执行权限,因此无需修改那里的任何权限。
这 4 个内置主题文件很重要,
前2个是深色模式,另外2个是浅色模式
因此,只需通过 PowerShell 创建 4 个任务计划,以便从下午 6 点到上午 8:59 使用前 2 个深色主题,从上午 9 点到下午 5:59 使用浅色主题。
# Task Schedules
$user = "ENTER YOUR USERNAME"
# Dark Theme A
$action = New-ScheduledTaskAction -Execute "C:\Windows\Resources\Themes\themeA.theme"
$trigger = New-ScheduledTaskTrigger -Daily -At 6PM
Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath "Theme Scheduling" -TaskName "Dark ThemeA" -Description "Activates Dark Theme everyday at 6PM" -User $user -RunLevel Limited
# Dark Theme B
$action = New-ScheduledTaskAction -Execute "C:\Windows\Resources\Themes\themeB.theme"
$trigger = New-ScheduledTaskTrigger -Daily -At 12AM
Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath "Theme Scheduling" -TaskName "Dark ThemeB" -Description "Activates Dark Theme everyday at 12AM" -User $user -RunLevel Limited
# Light Theme C
$action = New-ScheduledTaskAction -Execute "C:\Windows\Resources\Themes\themeC.theme"
$trigger = New-ScheduledTaskTrigger -Daily -At 9AM
Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath "Theme Scheduling" -TaskName "Light ThemeC" -Description "Activates Light Theme everyday at 9AM" -User $user -RunLevel Limited
# Light Theme D
$action = New-ScheduledTaskAction -Execute "C:\Windows\Resources\Themes\themeD.theme"
$trigger = New-ScheduledTaskTrigger -Daily -At 2PM
Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath "Theme Scheduling" -TaskName "Light ThemeD" -Description "Activates Light Theme everyday at 2PM" -User $user -RunLevel Limited
Run Code Online (Sandbox Code Playgroud)
我想这样做的原因是因为这是让操作系统根据一天中的时间更改主题的智能方式,而且对眼睛也更好。
这也是人们投票选出的反馈中心中排名最高的反馈项目之一,我认为微软最终会实现此功能,但在那之前,请使用上面的PowerShell脚本。
| 归档时间: |
|
| 查看次数: |
3491 次 |
| 最近记录: |