光昼——让Windows支持自动深色模式(暗色/夜间模式)的小工具
作者:高仙森 最后修改:2026.2.2
众所周知,Windows直到目前最新正式版25H2,依旧没有官方的自动深色模式。想要实现自动切换,必须依赖第三方工具。但是,很多第三方工具功能繁多,其实我只要方便切换(不用去设置里一层层翻)、或者实现按时间自动切换,就好了。于是,让AI按我思路写了一个。想要直接获取该小工具——光昼,可直接划至文末获取。
本文主要分享让AI写程序的思路以及踩过的坑,算是经验分享。话不多说,开始。

一、语言选择
该脚本是用AHK(AutoHotKey)1.1写的,是一个上古脚本语言,主要是方便打包exe。Python打包出来的exe太大了,因为有GUI,动不动就30M+,C#之类的又需要编译。而且我自己对AHK相对也比较熟悉,So,AHK。
二、实现功能
- 主:按快捷键快速切换浅色/深色模式
- 主:定时切换浅色/深色模式
- 附加:可更改快捷键
- 附加:有GUI便于设置时间
- 附加:一键设置开机自启动
- 附加:搞一个好看图标
三、核心实现
在Windows中,系统主题(亮/暗模式)的核心开关存储在 Windows 注册表中。
路径:
HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize
键名:
SystemUsesLightTheme (控制任务栏、开始菜单)
AppsUseLightTheme (控制资源管理器、设置、应用界面)
数值: 0 为 暗色 (Dark),1 为 亮色 (Light)。
因为是用户注册表 (HKCU),所以不需要管理员权限
聪明的你肯定想到,既然不用管理员权限,那不是直接写个批处理,然后在快捷方式上加快捷键,或者把批处理放到计划任务不就完事了?
非也非也。如果直接用powershell或者cmd进行注册表键值的切换,会发现explorer(资源管理器)等切换的不彻底,半黑半白的。
我们还需要发送一个广播(WM_SETTINGCHANGE),告诉系统,主题改变了。带上参数ImmersiveColorSet即可。AHK可以实现。
代码示例:
SendMessage, 0x1A, 0, "ImmersiveColorSet", , ahk_id 0xFFFF
至此,程序的核心实现就结束了。
四、其它注意点
坑1:在指挥AI写代码时,对于功能的实现一定要描述的很清楚。比如定时切换功能。如果只是和AI说:加上定时切换,虽然功能会做起来,但后续一定少不了逻辑故障,要回来修Bug。以我这个项目为例,一开始,AI的实现方式是定时器轮询。设置了一个60秒的定时器,每分钟去比对当前系统时间是否大于设定的时间。看起来完全没问题对不对,因为在启动程序时/保存自动切换时,需要判断当前时间是白天还是黑夜并切换。但是问题来了,如果我此时手动切换了浅色/深色模式,一分钟后,程序就会根据系统时间把颜色切换回去了!
坑2:AI在写代码时,倾向给出部分代码,比如你要他实现某一个功能,它告诉你要用什么函数,就只给你一个片段,叫你自己在某个地方插入。所以一定要在讲完需求点后,叫他把修改后的完整代码给你。
坑3:健忘。这个也是非常的常见了,如果不是一口气讲完详细的需求,而是做完核心功能,再让AI做下一个功能的时候,AI经常会把前一个功能忘掉。所以,如果后续要加功能点,我通常会新建一个对话,把某个里程碑版本完成发给AI,在告诉AI要加什么功能后,加上一句:“该脚本其他功能模块没有bug,请不要调整、删除,仅修改本次我请你帮我添加这个功能所需的部分。”
五、演示视频
六、下载地址
本工具在Github上开源了,有兴趣修改源码的可以移步查看,打包好的exe我也传网盘了,欢迎自取,同时也欢迎把工具转发给其它有需要的朋友们。
源码:https://github.com/gxj8885718/DayNightToggle
百度网盘:https://pan.baidu.com/s/1u3kUPv7qeSCzSO8mdFAJMg?pwd=y8k3 提取码: y8k3
阿里云盘:https://www.alipan.com/s/ZZojYRG5RJz 提取码: 4iv3
写在后面
哦对了,这个小程序的名字、图标也都是AI生成的,我用的都是免费的账号,并没有花钱升级Pro,毕竟这些小工具对AI庞大的知识库来说,简直小case。如果有什么想法,欢迎在评论区交流。

如果你也有类似的小需求,不妨试着让AI帮你写一写——或许下一个效率神器就诞生在你的对话框里。到时候别忘了来这里分享交流。