|
|
本帖最后由 baolizhu 于 2026-2-23 19:04 编辑
以下是批处理代码添加
@echo off
set ThemeSwitch=%windir%\system32\ThemeSwitch.vbs
echo Dim WSHShell>%ThemeSwitch%
echo Set WSHShell = WScript.CreateObject("WScript.Shell")>>%ThemeSwitch%
echo. >>%ThemeSwitch%
echo ' 定义注册表路径常量,方便维护>>%ThemeSwitch%
echo Const REG_PATH = "HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\">>%ThemeSwitch%
echo Const LIGHT_THEME_KEY = "SystemUsesLightTheme">>%ThemeSwitch%
echo. >>%ThemeSwitch%
echo ' 读取当前主题状态(1=明亮,0=暗黑)>>%ThemeSwitch%
echo ' 先捕获可能的异常(比如键值不存在时初始化)>>%ThemeSwitch%
echo On Error Resume Next>>%ThemeSwitch%
echo Dim currentTheme>>%ThemeSwitch%
echo currentTheme = ^WSHShell.RegRead(REG_PATH ^& LIGHT_THEME_KEY)>>%ThemeSwitch%
echo If Err.Number ^<^> 0 Then>>%ThemeSwitch%
echo ' 如果键值不存在,默认初始化为明亮主题(1)>>%ThemeSwitch%
echo currentTheme = ^1>>%ThemeSwitch%
echo WSHShell.RegWrite REG_PATH ^& LIGHT_THEME_KEY, 1, "REG_DWORD">>%ThemeSwitch%
echo WSHShell.RegWrite REG_PATH ^& "AppsUseLightTheme", 1, "REG_DWORD">>%ThemeSwitch%
echo Err.Clear>>%ThemeSwitch%
echo End If>>%ThemeSwitch%
echo ^On ^Error ^Goto ^0>>%ThemeSwitch%
echo. >>%ThemeSwitch%
echo ' 根据当前状态切换主题>>%ThemeSwitch%
echo If currentTheme = 1 Then>>%ThemeSwitch%
echo ' 若当前为明亮主题,则设置为暗黑主题>>%ThemeSwitch%
echo WSHShell.RegWrite REG_PATH ^& LIGHT_THEME_KEY, 0, "REG_DWORD">>%ThemeSwitch%
echo WSHShell.RegWrite REG_PATH ^& "AppsUseLightTheme", 0, "REG_DWORD">>%ThemeSwitch%
echo WSHShell.RegWrite "HKCR\Directory\background\shell\ThemeSwitch\MuiVerb", "切换到明亮主题模式","REG_EXPAND_SZ">>%ThemeSwitch%
echo WSHShell.Popup "已切换为暗黑主题模式", 0, "操作成功", vbInformation>>%ThemeSwitch%
echo Else>>%ThemeSwitch%
echo ' 若当前为暗黑主题,则设置为明亮主题>>%ThemeSwitch%
echo WSHShell.RegWrite REG_PATH ^& LIGHT_THEME_KEY, 1, "REG_DWORD">>%ThemeSwitch%
echo WSHShell.RegWrite REG_PATH ^& "AppsUseLightTheme", 1, "REG_DWORD">>%ThemeSwitch%
echo WSHShell.RegWrite "HKCR\Directory\background\shell\ThemeSwitch\MuiVerb", "切换到暗黑主题模式","REG_EXPAND_SZ">>%ThemeSwitch%
echo WSHShell.Popup "已切换为明亮主题模式", 1, "操作成功", vbInformation>>%ThemeSwitch%
echo End If>>%ThemeSwitch%
echo. >>%ThemeSwitch%
echo ' 移除了原脚本中无效的MuiVerb写入(路径错误且非必要)>>%ThemeSwitch%
echo ' 刷新资源管理器(增强版:强制重启资源管理器确保主题生效)>>%ThemeSwitch%
echo WSHShell.Run "taskkill /f /im explorer.exe && start explorer.exe", 0, True>>%ThemeSwitch%
echo. >>%ThemeSwitch%
echo Set WSHShell = Nothing>>%ThemeSwitch%
reg add "HKCR\Directory\background\shell\ThemeSwitch" /v "MuiVerb" /t REG_SZ /d "切换到明亮主题模式" /f
reg add "HKCR\Directory\background\shell\ThemeSwitch" /v "Icon" /t REG_EXPAND_SZ /d "%%systemroot%%\system32\themecpl.dll,-1" /f
reg add "HKCR\Directory\background\shell\ThemeSwitch\Command" /ve /t REG_EXPAND_SZ /d "wscript.exe \"%%systemroot%%\System32\ThemeSwitch.vbs\"" /f
pause
卸载代码:
reg delete "HKCR\Directory\background\shell\ThemeSwitch" /f
del /q /f /s %systemroot%\System32\ThemeSwitch.vbs
https://baolizhu。lanzouu。com/iqgLR3j1vm2j
|
|