时间同步指南

手动设置时间

MeXkey3支持在设备设置中手动调整系统时间。

时间格式说明YYYYMMDDHHMMSS

  • 4位年 + 2位月 + 2位日 + 2位小时 + 2位分钟 + 2位秒
  • 示例:20250730171212 表示2025年7月30日17点12分12秒

命令同步时间

MeXkey3支持通过脚本命令同步当前电脑时间。

重要说明
  • 设备每次开机仅自动同步一次时间
  • 如需手动同步,请根据您的操作系统选择相应命令

Linux / macOS 系统

echo -n "timestamp=$(date +%s)" | nc -u -w1 172.16.8.1 22

Windows 系统

这是一行命令
$timestamp=[int]([System.DateTimeOffset]::UtcNow.ToUnixTimeSeconds()); $msg=[System.Text.Encoding]::ASCII.GetBytes("timestamp=$timestamp"); $udp=New-Object System.Net.Sockets.UdpClient; $udp.Send($msg, $msg.Length, '172.16.8.1', 22); $udp.Close()
注意

Windows 10用户如遇驱动问题,请参考手动安装驱动

自动同步时间脚本

Windows 自动同步方案

1. 创建主同步脚本

新建 MeXkey3_timesync.ps1 文件,内容如下:

$targetVid = "303a"
$targetPid = "0030"

while ($true) {
    $usbDevices = Get-PnpDevice -Class USB | Where-Object Status -eq "OK"
    
    foreach ($device in $usbDevices) {
        if ($device.InstanceId -like "*VID_$targetVid&PID_$targetPid*") {
            Write-Host "Target USB device detected. Waiting 10 seconds..."
            Start-Sleep -Seconds 10 # 等待10秒发送同步命令

            $timestamp=[int]([System.DateTimeOffset]::UtcNow.ToUnixTimeSeconds()); 
            $msg=[System.Text.Encoding]::ASCII.GetBytes("timestamp=$timestamp"); 
            $udp=New-Object System.Net.Sockets.UdpClient; 
            $udp.Send($msg, $msg.Length, '172.16.8.1', 22);
            $udp.Close()

            Write-Host "UDP command executed successfully."
            exit
        }
    }
    Start-Sleep -Seconds 5 # 每5秒检测一次USB设备是否连接
}

2. 创建启动脚本

新建 MeXkey3_timesync_start_hidden.vbs 文件:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd /c powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File ""MeXkey3_timesync.ps1""", 0, False
Set WshShell = Nothing

3. 配置开机自启动

  1. 将两个脚本文件保存至合适位置
  2. 右键点击 MeXkey3_timesync_start_hidden.vbs → 创建快捷方式
  3. Win + R 键,输入 shell:startup 打开启动文件夹
  4. 将快捷方式放入启动文件夹

完成设置并重启电脑后,系统将在后台自动监测MeXkey3连接,并在检测到设备后10秒自动同步时间,同步完成后会退出脚本。