当前位置:首页 > 行业动态 > 正文

按键精灵 获取 网络时间

用按键精灵的Web访问功能抓取网络时间API,解析数据后调用系统命令同步至本地

按键精灵实现获取网络时间的方法

核心思路

通过调用系统命令或第三方API获取网络时间,再通过按键精灵解析并同步到本地系统。


实现步骤

步骤 操作说明 示例代码
获取网络时间 调用Windows w32tm命令查询NTP服务器时间 RunApp "w32tm /query /status /verbose"
解析时间数据 从命令返回结果中提取时间信息 VarTime = Split(Clipboard.GetText(), "[")(1)
格式化时间 将原始时间转换为系统可识别的格式 FormatTime = Replace(VarTime, "年", "/") & " " & Replace(VarTime, "时", ":")
同步系统时间 调用time命令设置时间(需管理员权限) RunApp "cmd.exe /c time " & FormatTime

完整脚本示例

// 步骤1:获取网络时间
RunApp "w32tm /query /status /verbose"
Delay 2000 // 等待命令执行完成
// 步骤2:解析时间数据(假设时间在第2行)
Clipboard.SetText(Clipboard.GetText())
VarTime = Split(Clipboard.GetText(), Chr(13))(1)
// 步骤3:格式化时间
FormatTime = Replace(VarTime, "年", "/") & " " & Replace(VarTime, "时", ":") & Replace(VarTime, "分", ":") & Replace(VarTime, "秒", "")
// 步骤4:同步系统时间(需管理员权限运行脚本)
RunApp "cmd.exe /c time " & FormatTime

注意事项

  1. 权限要求:修改系统时间需管理员权限,运行脚本前需右键选择“以管理员身份运行”。
  2. 时间服务器:默认使用time.windows.com,可通过w32tm /monitor查看当前NTP服务器。
  3. 时区处理:脚本默认同步UTC+8时区,如需调整需手动修改FormatTime

相关问题与解答

问题1:如何设置脚本开机自动同步时间?

解答

  1. 将脚本保存为.qks文件
  2. Win+R输入shell:startup打开启动文件夹
  3. 创建脚本快捷方式,右键属性勾选“以管理员身份运行”
  4. 重启电脑后脚本会自动运行同步时间

问题2:无法获取时间怎么办?

解答

  1. 检查网络:确保电脑可以访问互联网
  2. 验证NTP服务:在CMD执行w32tm /query /status,若显示Leap Indicator: 3(Slave)则表示正常
  3. 防火墙设置:确保UDP 123端口未被阻止(用于NTP通信)
  4. 替代方案:改用HTTP API获取时间,RunApp “powershell -Command Invoke-RestMethod http://worldtimeapi.org/api/
0