img { width: 30vw }

windows系统上怎么根据日出日落时间判断切换为深色模式或浅色模式呢?

windows系统自带了一个叫做“任务计划程序”的软件。可以通过“开始菜单”中的搜索找到。

然后选择“创建基本任务”

然后“触发器”选择每天,“操作”选启动程序,“程序”用powershell,可以直接复制下面的path

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

添加参数输入下面的脚本,要先修改一下经纬度参数,我这个是成都的lat=31&lng=103,经度31&维度103。其他不用修改。后面会讲解这段脚本。

$IsLight;$Daylight = (Invoke-RestMethod "http://api.sunrise-sunset.org/json?lat=31&lng=103&formatted=0").results;$Sunrise  = ($Daylight.Sunrise | Get-Date);$Sunset   = ($Daylight.Sunset | Get-Date);if(($Daylight.Sunrise | Get-Date) -lt (get-date)) {$IsLight=0} elseif(($Daylight.Sunset | Get-Date) -lt (get-date)) {$IsLight=1}New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Value $IsLight -Type Dword -Force; New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Value $IsLight -Type Dword -Force;

最后在添加两个触发器,一共3个触发器,早晚各运行一次,在加登录系统时运行一次,这样就保证脚本一定会运行,从而切换模式。当然早晚时间要自己斟酌一下,根据自己的习惯来。

解释一下脚本的内容。最核心的是最后两行命令,设置 SystemUsesLightTheme 和 AppsUseLightTheme 这两个系统的变量为0或1,通过名字很好理解其含义。

上面的代码就是求是要设置为0还是1。最重要的就是通过一个api接口获取所在经纬度的日出日落时间,通过与当前时间做对比从而确定需要深色还是浅色。当前时间超过日落时间,就要深色,否则如果当前时间超过日出时间,就要浅色。

$IsLight;
$Daylight = (Invoke-RestMethod "http://api.sunrise-sunset.org/json?lat=31&lng=103&formatted=0").results;
$Sunrise = ($Daylight.Sunrise | Get-Date);
$Sunset = ($Daylight.Sunset | Get-Date);
if(($Daylight.Sunrise | Get-Date) -lt (get-date)) {
$IsLight=0
} elseif(($Daylight.Sunset | Get-Date) -lt (get-date)) {
$IsLight=1
}
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Value $IsLight -Type Dword -Force;
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Value $IsLight -Type Dword -Force;

Type Dword -Force;

windows自动切换深色模式(夜晚模式)的更多相关文章

  1. Mycat在MySQL主从模式(1主1从)下读写分离和及自动切换模式的验证

    实验环境 两台Centos7  MySQL5.7.12 IP地址为:192.168.10.36  192.168.10.37 一台Centos7 Mycat IP地址为:192.168.10.31 一 ...

  2. eclipse设置是否自动跳转切换到debug视图模式

    之前一直用公司二次封装的eclipse,这几天用原生态的eclipse,刚开始使用eclipse进行调试时,会自动跳转到debug视图.后来不小心关闭了,就不会自动切换到debug视图. 这个小问题之 ...

  3. Mycat主从模式下的读写分离与自动切换

    1. 机器环境 192.168.2.136 mycat1 192.168.2.134 mydb1 192.168.2.135 mydb2 2在mysql1.mysql2上安装mysql 更改root用 ...

  4. Win10《芒果TV》更新v3.8.70周年版:升级高级配色、自动切换夜间模式

    官宣!光阴似箭,已过三年时光,我们一起从最初的青涩变成更加成熟起来,同呼吸共命运,匠心依旧,感恩有你,Win10版<芒果TV>全平台同步更新周年版v3.8.70,升级高级配色,新增自动切换 ...

  5. DataGuard failover dg role自动切换模式测试

    1,在脚本中代入create db flash backup point for recover dg 2,测试前主备库状态(备库现角色验证,主库监听状态-->有意stop) 主要验证思路, 脚 ...

  6. 虚拟机+桥接模式+Host-only模式 搭建完美的Windows下Linux开发环境

    相信有很多鞋童和我一个样是一枚Linux码农(我现在还是嵌入式方向). 做Linux开发势必需要一个Linux环境, 大多数开发者会首先选择一个Linux发行版, 其中Ubuntu LTS版本应该是选 ...

  7. Windows内核开发-5-(2)-内核模式调试

    Windows内核开发-5-(2)-内核模式调试 普通用户模式的调试,采取的是给进程添加一个线程来挂起断点,作为一个调试器的线程在进程中使用.照这样来类推,对操作系统调试相当于添加一个进程来限制操作系 ...

  8. Altium Designer之AD16在Win10系统下无法切换走线/布线模式的解决办法

    有些童鞋会在Win10下使用AD16的时候发现,走线模式/布线模式(切换直角,45°,弧形等)不能切换. 问题出在输入法上,一般是切换到英文输入法即可解决,但是有一种情况是win10系统自带输入法有时 ...

  9. zabbix3.2利用自动发现功能对fastcgi模式的php状态进行集中监控

    zabbix3.2利用自动发现功能对fastcgi模式的php状态进行集中监控 前端nginx虚拟主机引用后端多个php接口,为了方便监控,将后端服务器集中配置在nginx中,具体配置如下: [roo ...

随机推荐

  1. 抽象类与接口——JavaSE基础

    抽象类与接口 抽象类 抽象类既包含规范又包含具体实现 抽象类可以包含实现的方法 和 未实现的用abstract修饰的抽象方法 抽象类不可以有实例化(不能使用new实例化),只能通过子类继承,然后对子类 ...

  2. 微前端(qiankun)主应用共享React组件

    前言 最近需要重构一个老项目,定的方案用微前端去改造.主应用是老的项目,微应用是新的项目,由于重构时间比较紧张,子应用还需要使用父应用的一些组件.过程中遇到一些问题,记录一下. 方案 我们知道qian ...

  3. JS:逗号运算符

    逗号运算符: 会把逗号隔开的表达式全部执行 最后一个运行的表达式的结果就是逗号运算符的结果   例: var a = (1, 2, 3, 4, 5, 6); console.log(a); //6 隐 ...

  4. JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?一文带你厘清个中曲直,给你个选择SpringDataJPA的理由!

    序言 Spring Data JPA作为Spring Data中对于关系型数据库支持的一种框架技术,属于ORM的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度. 本文档隶属于< ...

  5. python-将print内容保存到文件

    通过sys.stdout得到print输出的内容,再进行保存 import sys class Logger(object): def __init__(self, file_path: str = ...

  6. crane:字典项与关联数据处理的新思路

    前言 在我们日常开发中,经常会遇到一些烦人的数据关联和转换问题,比如典型的: 对象属性中个有字典 id,需要获取对应字典值并填充到对象中: 对象属性中有个外键,需要关联查询对应的数据库表实体,并获取其 ...

  7. 7.Spark SQL

    1.分析SparkSQL出现的原因,并简述SparkSQL的起源与发展. SparkSQL出现是因为关系数据库已经不能满足各种在大数据时代新增的用户需求.首先,用户需要在不同的结构化和非结构化数据中执 ...

  8. StarGAN论文及代码理解

    StarGAN的引入是为了解决多领域间的转换问题的,之前的CycleGAN等只能解决两个领域之间的转换,那么对于含有C个领域转换而言,需要学习C*(C-1)个模型,但StarGAN仅需要学习一个,而且 ...

  9. 『现学现忘』Git后悔药 — 30、版本回退git reset --hard命令说明

    git reset --hardcommit-id命令:回退到指定版本.(hard:强硬,严格的回退) 该命令不仅移动了分支中HEAD指针的位置,还将工作区和暂存区中数据也回退到了指定的版本. (提示 ...

  10. 数学工具类Math

    概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单 基本运算的方法 ...