马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?请使用中文注册
×
开机时间总回初始,咋回事? 电脑一开机,时间就变回初始日期,不显示最新时间,如果每次都得手动调整 ,真的很麻烦! 那么,电脑开机时间为何会变回初始日期呢?最常见的就是主板的纽扣电池没电了,当电脑断电后,纽扣电池负责维持电脑的时间和一些基本设置。 另外,系统时间服务被禁用也会引发时间对不上。在 Windows 系统中,有一个专门负责时间同步的服务 ——Windows Time 服务。如果这个服务被禁用,电脑就无法自动从互联网上获取准确的时间 ,时间自然就对不上啦,当然了,这种情况通常是时间慢了几小时或几天甚至几个月,而不是变回初始日期。 对于这种情况,换个纽扣电池就可以了。 让时间自动同步,轻松搞定 然而,主板的纽扣电池未必好更换,比如,用户不懂,也不会操作;笔记本电脑和一体机电脑需要拆开,电池更换不方便,甚至电池规格属于定制的,比较难找难换;教学的一体机白板体积大,换电池不方便等 需要让电脑时间自动同步到最新 ,再也不用手动调整时间的方法,在Windows系统的操作如下: 对于 Windows 系统,不同版本的设置方法稍有不同。如果你用的是 Windows 10 或者 Windows 11,那就很简单啦 。点击屏幕左下角的 Windows 图标,再点击设置图标(就是那个齿轮形状的) ,打开设置窗口。在设置窗口里,找到 “时间和语言” 选项,点击进入 (另一个方法就是任务栏的时间上右键点击,选择“调整日期/时间)。在 “日期和时间” 这一栏,把 “自动设置时间” 和 “自动设置时区” 这两个开关都打开 。这样,只要你的电脑联网,时间就会自动同步啦 。要是你想手动同步时间,也可以在这个页面点击 “立即同步” 按钮 。
要是你还在使用经典的 Windows 7 系统,操作也不难。按下键盘上的 Win+R 键,打开运行对话框,输入 “control”,然后回车(另一个方式:点击左下角的开始菜单,选择弹出菜单里的”控制面板“ ,或者任务栏的时间上右键点击,选择“调整日期/时间),打开控制面板。在控制面板里,找到 “时钟、语言和区域” 选项,点击进入 。接着,点击 “日期和时间”,在弹出的窗口中,切换到 “Internet 时间” 选项卡 ,勾选 “与 Internet 时间服务器同步”,再点击 “更改设置” 按钮 。在新弹出的窗口里,你可以选择一个时间服务器,比如 “time.windows.com”,这是微软官方的时间服务器,很稳定 。选好后,点击 “立即更新” 按钮,时间就会马上同步 。最后,点击 “确定” 保存设置就行啦 。 检查系统时间服务有没有被禁用。按下键盘上的 Win+R 键,打开运行对话框,输入 “services.msc”,然后回车 。在弹出的服务窗口中,找到 “Windows Time” 服务,看看它的状态是不是 “已停止”,启动类型是不是 “禁用” 。如果是,那就右键点击它,选择 “属性”,把启动类型改成 “自动”,然后点击 “启动” 按钮,让这个服务重新运行起来 ,最后点击 “确定” 保存设置。 这种方式,需要时间同步服务开机就运行才行,对于Windows7系统,一般时间同步服务是隔一段时间定时运行一下,所以开机后时间未必是正确的最新时间。经过测试,时间不正确,Windows10系统会开机运行时间同步一次 网络稳定也很重要,它是时间同步的基础。在同步时间的时候,一定要确保你的电脑网络连接正常、稳定 。 Windows7系统同步小技巧,更稳更准 时间不正确下,因为Windows7系统未必是开机就运行一次时间同步,所以需要解决自动同步的问题,假如Windows10、11系统开机没有运行时间同步,就需要想办法让时间自动同步,毕竟手动操作繁琐了点儿。 自动运行,当然是程序可以实现啦,下方就是一段Python版的时间同步程序 原理是获取授时中心的网络时间,将网络时间设置为系统时间 import ntplibfrom time import ctimeimport win32apiimport pythoncomimport os
def synchronize_time(): ntp_servers = [ 'time1.aliyun.com', # 阿里云时间服务器 'time.nist.gov', # 美国国家标准与技术研究院时间服务器 'time-a.nist.gov', # 美国备用时间服务器 'ntp1.aliyun.com', # 阿里云另一个时间服务器 'cn.ntp.org.cn', # 中国的公共NTP服务器 'time.google.com' # 谷歌时间服务器 ]#知名的时间服务器 。比如,国内的 “[ntp.sjtu.edu.cn](https://ntp.sjtu.edu.cn)”(上海交通大学的 NTP 服务器)、“[ntp.ntsc.ac.cn](https://ntp.ntsc.ac.cn)”(中国科学院国家授时中心的服务器) ,国外的 “[time.nist.gov](http://time.nist.gov)”(美国国家标准与技术研究院的时间服务器)等
for server in ntp_servers: ntp_client = ntplib.NTPClient() try: ntp_client.connect(server) ntp_time = ntp_client.request(server).tx_time ntp_client.close()
# 格式化获取到的时间 formatted_time = ctime(ntp_time)
# 记录时间到log.txt文件 log_path = os.path.join(os.getcwd(), 'log.txt') with open(log_path, 'a', encoding='utf-8') as log_file: log_file.write(f"通过 {server} 获取到的网络时间: {formatted_time}\n")
pythoncom.CoInitialize() # 设置系统时间 win32api.SetSystemTime(*ctime(ntp_time)[11:19].split(':') + ctime(ntp_time)[8:10].split(' ')[:2] + ctime(ntp_time)[20:].split(' ')[:2]) pythoncom.CoUninitialize()
print(f"通过 {server} 时间同步成功!") return except ntplib.NTPException as e: print(f"连接 {server} 失败: {e}") # 记录失败信息到log.txt文件 log_path = os.path.join(os.getcwd(), 'log.txt') with open(log_path, 'a', encoding='utf-8') as log_file: log_file.write(f"连接 {server} 失败: {e}\n")
print("尝试所有服务器后,时间同步均失败。") # 记录最终失败信息到log.txt文件 log_path = os.path.join(os.getcwd(), 'log.txt') with open(log_path, 'a', encoding='utf-8') as log_file: log_file.write("尝试所有服务器后,时间同步均失败。\n")
if __name__ == "__main__": synchronize_time()
当然了,Python虽说是热门的编程语言,但电脑需要安装并配置开发环境才行,这一步就难倒了大部分人,没有Python的编程环境,Python程序是无法运行,所以需要换成电脑自带的编程语言,有cmd命令行,VBScript,如此一来,程序可以免配置编程环境,直接拿来就用 cmd命令行是交互式,bat文件运行会有黑色窗口,有些操作不太好实现,而且不了解的人可能会忽略,可能以为电脑出现异常 经过查找考虑,VBScript基本上可以实现开机自启设置与检测,快捷方式添加,定时弹窗Popup显示消息并自动退出等 下方代码保存为“.vbs”后缀名的文件,名称自己取,比如“时间同步”,“time_sync”,合起来就是:time_sync.vbs (在桌面或D盘E盘里面,空白处右键点击,选择新建文本文档,打开文档,将代码复制粘贴到文本文档里并保存,修改文档名称以及后缀名) Set shell = CreateObject("WScript.Shell")
shell.Popup "程序启动",3Set service = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Service")
Dim isRunningisRunning = False
For Each s In service If s.Name = "W32Time" Then If s.State = "Running" Then isRunning = True Exit For End If End IfNext
If Not isRunning Then '设置服务为自动启动 shell.Run "sc config w32time start= auto", 0, True '启动服务 shell.Run "net start w32time", 0, True shell.Popup "W32Time 服务已配置并启动。", 5, "提示"Else shell.Popup "W32Time 服务正在运行。", 5, "提示"End If
' 检查是否开机自启Function IsStartup() Dim startupPath, scriptPath startupPath = shell.SpecialFolders("Startup") & "\time_sync.vbs" scriptPath = WScript.ScriptFullName IsStartup = (scriptPath = startupPath) shell.Popup “开机自启检测”,3,“isStartup”End Function
' 设置开机自启Sub SetStartup() Dim startupPath, scriptPath startupPath = shell.SpecialFolders("Startup") & "\time_sync.vbs" scriptPath = WScript.ScriptFullName Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile scriptPath, startupPath shell.Popup “设置开机自启”,3,“SetStartup”End Sub
' 添加桌面快捷方式Sub CreateDesktopShortcut() Dim desktopPath, lnkPath, shortcut desktopPath = shell.SpecialFolders("Desktop") lnkPath = desktopPath & "\时间同步.vbs.lnk" Set shortcut = shell.CreateShortcut(lnkPath) shortcut.TargetPath = WScript.ScriptFullName shortcut.Save shell.Popup “已添加桌面快捷方式:时间同步.vbs.lnk”,3,“时间同步.vbs.lnk”End Sub
' 时间同步函数net start w32time,sc config w32time start= auto'-2147023834:发生下列错误: 服务尚未启动。 (0x80070426)' 时间同步函数Sub SyncTime() On Error Resume Next returnCode = shell.Run("w32tm /resync", 0, True) 'shell.Popup returnCode, 30 Select Case returnCode Case 0 shell.Popup "时间同步已运行,请核对。", 5, "w32tm /resync" Case -2147023834 shell.Popup "发生错误: 时间同步服务尚未启动,日期与时间里需要勾选自动同步选项", 5, "w32tm /resync" Case Else shell.Popup "时间同步失败", 5, "w32tm /resync" End Select On Error Goto 0End Sub' 主程序逻辑If Not IsStartup() Then SetStartup() CreateDesktopShortcut()End If
SyncTime()
' 释放对象Set shell = Nothing
|