trangdv.pchg > 21-12-16, 06:56 PM
trangdv.pchg > 21-12-16, 11:43 PM
trangdv.pchg > 22-12-16, 07:07 AM
ongke0711 > 22-12-16, 10:54 AM
Private Sub cmdTimeSync_Click()
Dim FileName As String
FileName = "C:\TimeSync" 'File TimeSync.bat: NET TIME \\TenSERVER /SET /YES'
Call Shell("cmd.exe /k " & FileName)
End Sub
Option Explicit
'API Structures'
Type TIME_OF_DAY_INFO
tod_elapsed As Long
tod_msecs As Long
tod_hours As Long
tod_mins As Long
tod_secs As Long
tod_hunds As Long
tod_timezone As Long
tod_tinterval As Long
tod_day As Long
tod_month As Long
tod_year As Long
tod_weekday As Long
End Type
'NetAPI Calls'
Public Declare Function NetRemoteTOD Lib "netapi32.dll" (yServer As Any, pBuffer As Long) As Long
Private Declare Function NetApiBufferFree Lib "netapi32.dll" (ByVal pBuffer As Long) As Long
'Kernel API Calls'
Private Declare Sub CopyMem Lib "kernel32.dll" Alias "RtlMoveMemory" (pTo As Any, uFrom As Any, ByVal lSize As Long)
'Lay thông tin thoi gian o máy chu trong mang'
Public Function GetRemoteTime(ServerName As String) As Date
Dim lpBuffer As Long
Dim t_struct As TIME_OF_DAY_INFO
Dim ret As Long
Dim bServer() As Byte
If Trim(ServerName) = "" Then
'Neu khong có ten may chu -> lay tu may PC dang chay'
ret = NetRemoteTOD(vbNullString, lpBuffer)
Else
If InStr(ServerName, "\\") = 1 Then
bServer = ServerName & vbNullChar
Else
bServer = "\\" & ServerName & vbNullChar
End If
ret = NetRemoteTOD(bServer(0), lpBuffer)
End If
CopyMem t_struct, ByVal lpBuffer, Len(t_struct)
If lpBuffer Then
Call NetApiBufferFree(lpBuffer)
End If
GetRemoteTime = DateSerial(t_struct.tod_year, t_struct.tod_month, t_struct.tod_day) + TimeSerial(t_struct.tod_hours, t_struct.tod_mins - t_struct.tod_timezone, t_struct.tod_secs)
End Function