吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7582|回复: 82
收起左侧

[原创工具] Windows自动同步时间工具(非NTP,基于HTTP GET和win32api)

  [复制链接]
~零度 发表于 2024-1-24 11:45
本帖最后由 ~零度 于 2024-1-24 16:58 编辑

程序采用Python编写,由nuitka在win10系统下打包成一个单独的exe。


在程序启动时会尝试连接网络,如果网络不可用则会等待1分钟后再次尝试(以免设置开机启动时,系统刚开机没有网),一共尝试100次

主要是通过获取HTTP GET访问百度网页返回的信息头中包含的时间日期来获得网络时间,误差大约小于1秒,具体看网络延时。

统一回复:

关于系统自带同步时间功能
主要解决部分电脑无法通过系统的NTP同步时间的问题(例如不支持NTP协议、NTP端口被屏蔽、操作系统存在bug等原因)

关于多久同步一次以及是否开机启动:
程序本身无开机启动,也没有定时同步功能,运行后同步一次就结束了
如果需要自动同步系统时间,可以在系统自带任务计划程序里添加任务,并设置管理员权限,可以开机启动或者定时启动
具体设置的方法可以参考这篇博客:如何让自己的exe程序开机自启动 - 红磨坊后的白桦树 - 博客园 (cnblogs.com)
关于点了之后没反应或者没有界面出来:
运行时无界面,不放心可以先把系统时间改错(例如改成提前1小时),然后点一些运行程序看是否同步正确
源代码如下
[Python] 纯文本查看 复制代码
import requests
import datetime
import win32api
import time

if __name__ == '__main__':
    try:
        hea = {'User-Agent': 'Mozilla/5.0'}
        # 尝试连接网络
        max_retry_count = 100
        response = None
        while max_retry_count > 0:
            try:
                response = requests.get("https://www.baidu.com", headers=hea, timeout=10, verify=False)
                if response.status_code == 200:
                    break
            except Exception as e:
                print(e)
                time.sleep(60)  # 等待一分钟,程序最长运行时间100*(60+10)=7000秒
            max_retry_count -= 1
        if response is not None:
            # 若设置发现时钟落后8小时,则取消下一行尾部的注释,将时间加8小时
            web_t = datetime.datetime.strptime(response.headers["Date"][5:25],
                                               "%d %b %Y %H:%M:%S")  # + datetime.timedelta(hours=8)
            year = web_t.year
            month = web_t.month
            day = web_t.day
            hour = web_t.hour
            minute = web_t.minute
            second = web_t.second
            win32api.SetSystemTime(year, month, web_t.weekday(), day, hour, minute, second, 0)
        else:
            raise Exception("无法获取网络时间")
    except Exception as e:
        print(e)


打包的命令:
win10:
[Shell] 纯文本查看 复制代码
nuitka --standalone --onefile --show-progress --disable-console --windows-icon-from-ico=icon.ico --include-module=win32api SyncSystemTime.py

win7:
[Shell] 纯文本查看 复制代码
pyinstaller  -w -y -i icon.ico SyncSystemTime.py --onefile --clean



部分地区如果蓝奏云打不开的,可以通过123pan下载
Win10及以上系统可用版本:下载地址:https://wwwb.lanzn.com/iS3001m4v7qh 密码:818b
Win7及以上系统可用版本(推荐,兼容性更好):https://wwwb.lanzn.com/imUZv1m5q3pi 密码:53iv
123pan链接:https://www.123pan.com/s/XCvbVv-sawl.html
均在相应系统下测试可用


在线查杀病毒信息:
image.png image.png

任务计划程序:
image.png

如果修改后发现时间落后或者提前若干小时,可以反馈一下

免费评分

参与人数 19吾爱币 +21 热心值 +16 收起 理由
mrljw + 1 我很赞同!
hgfplm + 1 谢谢@Thanks!win7老是时间不准,用着试试
wqol + 1 + 1 今天上午下载了很多个,感觉这个最好用,我下载的是这个地址:Win7及以上系.
kk43 + 1 谢谢@Thanks!
52p0 + 1 用心讨论,共获提升!
zmllxh + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
a85401234 + 1 + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yanglinman + 1 谢谢@Thanks!
会飞的花 + 1 + 1 谢谢@Thanks!
zhangtaisen + 1 + 1 热心回复!
cootoo + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
461735945 + 1 + 1 用心讨论,共获提升!
china100 + 1 + 1 我很赞同!
blindcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wanfon + 1 + 1 热心回复!
zmolli775 + 1 谢谢@Thanks!鼓励一下。
风吹淡淡凉 + 1 + 1 你给的地址还需要转存。
wapjsx + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zmolli775 发表于 2024-1-24 12:32
本帖最后由 zmolli775 于 2024-1-24 12:36 编辑

看起来不错,鼓励一下。
不过我选择更简单的!

 楼主| ~零度 发表于 2024-1-24 16:57
15015010700 发表于 2024-1-24 16:48
可以设置自动启动吗?可以每两分钟时间启动一次,主板电池没电,每次开机都要手动启动一次,麻烦。

可以的,参考这个博客:https://www.cnblogs.com/macT/p/9848467.html
tvb318 发表于 2024-1-24 15:06
 楼主| ~零度 发表于 2024-1-24 14:14
小屎球 发表于 2024-1-24 12:52
windows不是有自带的时间同步吗,自定义一个服务器就可以了time.apple.com

有一些电脑不行,帖子开头说了
 楼主| ~零度 发表于 2024-1-24 12:36
zmolli775 发表于 2024-1-24 12:32
看起来不错,鼓励一下。
不过我选择更简单的![md]![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAa ...

有一些电脑不支持ntp协议,或者ntp的端口被屏蔽,我公司的电脑就是这样的
wapjsx 发表于 2024-1-24 11:54
本帖最后由 wapjsx 于 2024-1-24 11:58 编辑

懒得换主板电池,可以用下的。

谢谢!

另外,建议加个 循环!!!

作用:1、一开机时,并没有联网,运行时将不能获取时间;
2、若在一台不能上网的电脑上运行的,则建议加一个循环次数,如10次,间隔2分钟。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
15015010700 + 1 + 1 对,我也是懒得换电池,有办法解决吗?

查看全部评分

风吹淡淡凉 发表于 2024-1-24 11:56
非常感谢,笔记本防盗螺丝卸不下来,这个实用!
paulz2018 发表于 2024-1-24 12:05
支持开源,谢谢楼主分享。。。
 楼主| ~零度 发表于 2024-1-24 12:21
wapjsx 发表于 2024-1-24 11:54
懒得换主板电池,可以用下的。

谢谢!

已经加上了,更新了
万一行了呢 发表于 2024-1-24 12:35
zmolli775 发表于 2024-1-24 12:32
看起来不错,鼓励一下。
不过我选择更简单的![md]![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAa ...

主板或者电池有问题 这个就不行了
小屎球 发表于 2024-1-24 12:52
windows不是有自带的时间同步吗,自定义一个服务器就可以了time.apple.com
头像被屏蔽
pj666a 发表于 2024-1-24 13:03
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-23 03:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表