如何使 Windows 自动切换深色模式以及修改壁纸
本文从之前的解决方案发展而来。在其基础思路指导下新实现了电脑登录时自动切换深色模式,以及壁纸的功能。
本文所描述的代码被托管到了
前情提要
基于
一种解决思路是,在用户登录时也执行一次脚本。但是,crontab@reboot
。
查阅资料发现,Windows真香。
好的,接下来该挑战未知的领域了:VBScript (VBS)。
VBS 实现深色模式的自动切换
为什么选
其实在此之前我还试图用AppsUseLightTheme
SysUsesLightTheme
。
更换壁纸初尝试
VBSRegWrite
RegRead
RegWrite
REG_DWORD
。
1 | Set RegObj = WScript.CreateObject("WScript.Shell") |
让我们对象化一下:
1 | Class MyReg |
配置
请参考
P.S. PowerShell
附录:VBS 踩坑指南
VB
不区分大小写,不论是关键字、变量名还是类名等等,都不区分大小写。所以类似 Java 形式的 WindowObject windowObject = new WindowObject()
是行不通的。所以,VB 中应该写成 Set w_obj = New WindowObject
.VB
中对变量进行赋值时,如果是对象则用 Set 关键字,如上一条所示。如果是其他类型则没有前缀。 Class
的 Property 支持 Getter 和 Setter。但是,如果是普通类型赋值,要写 Property Let,e.g., 上一节的 AppTheme;如果是对象赋值,则需要写 Property Set。 函数调用有两种写法:
rtn = func(a, b, c)
,或者func a, b, c
。应注意,没有返回值的函数或者子程序被调用时不加括号。
下次再也不写
Fin.