← 返回

光昼——让Windows支持自动深色模式(暗色/夜间模式)的小工具

作者:高仙森 最后修改:2026.2.2


众所周知,Windows直到目前最新正式版25H2,依旧没有官方的自动深色模式。想要实现自动切换,必须依赖第三方工具。但是,很多第三方工具功能繁多,其实我只要方便切换(不用去设置里一层层翻)、或者实现按时间自动切换,就好了。于是,让AI按我思路写了一个。想要直接获取该小工具——光昼,可直接划至文末获取。

本文主要分享让AI写程序的思路以及踩过的坑,算是经验分享。话不多说,开始。

image-20260202194937870

一、语言选择

该脚本是用AHK(AutoHotKey)1.1写的,是一个上古脚本语言,主要是方便打包exe。Python打包出来的exe太大了,因为有GUI,动不动就30M+,C#之类的又需要编译。而且我自己对AHK相对也比较熟悉,So,AHK。

二、实现功能

三、核心实现

在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帮你写一写——或许下一个效率神器就诞生在你的对话框里。到时候别忘了来这里分享交流。