近期,由于我的电脑装了双系统,但是有个后遗症,就是windows系统时间经常不对,不堪其扰,所以就想有没有一个办法可以进行时间同步呢?这个时候我们的python就派上用场了。
![fa70e40d6748bd693ff2dbbd7a22d61a.png](https://i-blog.csdnimg.cn/blog_migrate/03ed4955871a157cd8e879b96f59b707.jpeg)
封面图
安装pywin32
首先我们需要安装一个第三方库pywin32:
pip install pywin32
脚本代码
![c9783f9ee16591914e4a12b0bdb0c2df.png](https://i-blog.csdnimg.cn/blog_migrate/5b52c02734dac2be318e53bc861b6469.jpeg)
同步时间脚本
打包成exe
为了使我们的脚本能够打包成可执行程序,我们需要安装另外一个库pyinstaller,执行如下命令:
pip install pyinstaller
然后在项目根目录下运行
pyinstaller -F 你的脚本名称.pyw
注意:此处为什么不适用.py而使用.pyw的原因我不想在程序执行的时候弹出命令提示符,而pyw正好满足这个需求,关于pyw和py的区别,可以自行百度。
此时,在我们的项目根目录下应该有个dist目录,该目录下就是我们打包成功的可执行程序,如下图所示:
![95450e841b5f9e83c16151a4e5c500ad.png](https://i-blog.csdnimg.cn/blog_migrate/7326962612df7b092c5a38acee8efca5.jpeg)
同步时间可执行程序
这个时候我们右箭选择“以管理员权限运行”,就可以同步时间了。
自动运行
这个时候虽然我们可以运行该程序,但是每次手动操作,有些过于繁琐,这个时候我们就需要windows系统自定的“任务计划程序了”。以win10为例,在左下角搜索框输入“任务计划”
![ddd0a59ff19d3ac23ff1dd1718632011.png](https://i-blog.csdnimg.cn/blog_migrate/b87bd50e3c4931a1682d60ed37f18111.jpeg)
搜索任务计划
点击“任务计划程序”我们来配置定时任务。
配置定时任务
点击这里的“创建任务...”
![f817fd5ec5d3dd5162831a2516ef0faa.png](https://i-blog.csdnimg.cn/blog_migrate/693c78794967d66d0f0464487d4a92e3.jpeg)
创建任务
然后我们来配置任务,填写常规选项卡
![65623a57197831da05291a0c8f9f4702.png](https://i-blog.csdnimg.cn/blog_migrate/84a949acb2c3a916f9dbd3eaa5c7fc2c.jpeg)
常规填写示意
注意:一定要勾选“以最高权限运行”
然后填写触发器,选择“新建”,会弹出如下窗口:
如下图填写触发器:
![b722ec672afb6b2f616043f57f900c6b.png](https://i-blog.csdnimg.cn/blog_migrate/4d643e1779a3ebf70e93d67e49235995.jpeg)
触发器填写示意
然后我们选择”操作“选项卡,选择需要运行的程序,即刚刚我们打包的exe程序,如下图所示:
![1f3fe2dda7ad4ca1264e3f95606f304a.png](https://i-blog.csdnimg.cn/blog_migrate/fcd6cccad1b14a927bf041dcc8fccbd7.jpeg)
操作填写示意
切换到”条件“选项卡,如下图所示填写:
![a5020d389a6b4426a25a8c1ae0f769ae.png](https://i-blog.csdnimg.cn/blog_migrate/ac4da2f4743bf7e44babf935165b64f8.jpeg)
条件填写示意
然后点击确定,我们会发现在”任务计划程序库“里面会多出一条新任务,如图所示:
![48ef5d2ccb85b8383d9074979ee6c7a2.png](https://i-blog.csdnimg.cn/blog_migrate/95b893f37b8186104eca2c5fdf9cd9a4.jpeg)
任务计划程序库
点击”运行“,即可运行该计划任务,此时我们已大功告成。
总结:
- 必须以”管理员权限“(最高权限)运行。
- 计划任务最小间隔是5分钟,你可以通过自己的需要调整间隔。
- 必须在联网的情况下才能同步时间,由于脚本是获取网络时间和系统时间进行同步。
![2a8a79e0fda171a73f5ad03f7b31e3e8.gif](https://i-blog.csdnimg.cn/blog_migrate/2173f4e267f55cbda75124d948e525d2.gif)