Win11更新后,导入注册表模式的苹果绿设置失效怎么办?

原有注册表:Win7/10导入可用:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Colors]
"Background"="204 232 207"
"Window"="204 232 207"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\DefaultColors\Standard]
"Window"=dword:00cae8cf

Win11更新后,部分失效,可以用Microsoft Office 的 VBA来实现,代码如下:

' =====================================================
' 模块顶部:所有 API 声明和常量(必须放在最顶部)
' =====================================================

' ---------- 窗口背景色 API(你的原有代码) ----------
#If VBA7 Then
    Public Declare PtrSafe Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As LongPtr, lpColorValues As LongPtr) As Long
    Public Declare PtrSafe Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
#Else
    Public Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
    Public Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
#End If

' 窗口背景颜色常量
Public Const COLOR_WINDOW = 5

' 保存默认颜色的变量
Public lngDefaultWindowColor As Long


' ---------- 桌面背景色 API ----------
#If VBA7 Then
    Private Declare PtrSafe Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" ( _
        ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
#Else
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" ( _
        ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
#End If

' 桌面背景相关常量
Private Const SPI_SETDESKWALLPAPER As Long = 20
Private Const SPIF_UPDATEINIFILE As Long = &H1
Private Const SPIF_SENDWININICHANGE As Long = &H2
Private Const COLOR_BACKGROUND As Long = 1   ' 桌面背景色


' =====================================================
' 主过程:设置苹果绿(桌面纯色 + 窗口背景)
' =====================================================

Sub SetAppleGreen()
    Dim ws As Worksheet
    
    ' ----- 1. 保存当前默认窗口颜色(用于后续可能的恢复) -----
    lngDefaultWindowColor = GetSysColor(COLOR_WINDOW)
    
    ' ----- 2. 设置桌面纯色背景(苹果绿) -----
    ' 第1步:清除当前壁纸(必须,否则纯色不生效)
    Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
    
    ' 第2步:设置桌面背景色为苹果绿
    Call SetSysColors(1, COLOR_BACKGROUND, RGB(204, 232, 207))
    
    ' ----- 3. 设置所有程序窗口背景为苹果绿 -----
    Call SetSysColors(1, COLOR_WINDOW, RGB(204, 232, 207))
    
    ' ----- 4. 设置 Excel 工作表背景为苹果绿 会影响打印效果,注释掉-----
    'Application.ScreenUpdating = False
    'For Each ws In ActiveWorkbook.Worksheets
    '    ws.Cells.Interior.Color = RGB(204, 232, 207)
    'Next ws
    'Application.ScreenUpdating = True
    
    ' ----- 5. 关闭加载宏 -----
    On Error Resume Next
    Workbooks("加载宏.xlsm").Close SaveChanges:=False
    On Error GoTo 0
End Sub


(代码由deepseek辅助生成)
可以将宏命令加载到Excel或word等的自定义菜单中,随时调用,一键重置苹果绿。此处以Excel为例:
新建或打开加载宏.xlsm,按Alt+F11,点击菜单:插入→模块。拷贝上面的代码。保存。
在菜单栏下方的功能区点右键→自定义功能区→左侧选择:宏,找到SetAppleGreen,添加到右侧自定义菜单。点击确定。
打开任意Excel文件,或新建Excel文件,即可点击菜单按钮执行上面的宏命令,默认退出加载宏.xlsm。
(需要信任并启用宏,才能运行)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容