Red de conocimiento informático - Problemas con los teléfonos móviles - VB obtiene la hora de la red

VB obtiene la hora de la red

Puede prohibir la modificación de la hora del sistema. El código es el siguiente. El código fuente se le puede enviar. hwnd 'Subclase de la ventana

End SubPrivate Sub Timer1_Timer()

OldTime = Now

End Sub 'Módulo modle1: Función de declaración pública FindWindow Lib alias "user32" "FindWindowA" (ByVal lpClassName como cadena, ByVal lpWindowName como cadena) mientras

Función de declaración pública SendMessage Lib "user32" Alias ​​​​"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Función de declaración pública SetWindowLong Lib "user32" Alias ​​​​" SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal lPrevWndFunc As Long, ByVal hwnd As Long , ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Función de declaración pública RegisterWindowMessage Lib "user32" Alias ​​​​"RegisterWindowMessageA" (ByVal lpString As String) As Long

Public OldTime As String

Public ChangeFlag As Boolean

Public Const WM_TIMECHANGE As Long = amp.H1E 'Enviar este mensaje H1E 'Cuando cambie la hora del sistema, envíe este; mensaje a todas las ventanas de nivel superior.

Cuando cambie la hora del sistema, envíe este mensaje a todas las ventanas de nivel superior

Public oldproc As Long

Tipo privado SYSTEMTIME

wYear As Integer

wMes Como Entero

wDíaDeLa Semana Como Entero

wDía Como Entero

wHora Como Entero

wMinuto Como

wHora como número entero

wMinuto como número entero

wSegundo como número entero

wMilisegundos como número entero

Tipo de fin

Función de declaración privada SetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) como larga Función pública RegisterWindow (hwnd como larga) como larga

Si hwnd lt;0 entonces

oldproc = SetWindowLong(hwnd , -4, AddressOf WinProc)

Finalizar si

Finalizar función

Función pública unRegisterWindow(hwnd As Long) As LongIf hwnd lt;gt;0 entonces< / p>

SetWindowLong hwnd, -4, oldproc

Función End IfEnd

Función pública WinProc(ByVal hwnd As Long, ByVal msg As Long, ByVal lpara As Long, ByVal wpara As Long) As LongDim i.MyttIf msg = WPF, myttIf msg = WM_TIMECHANGE And ChangeFlag = False Then 'La hora del sistema ha sido cambiada y no por este programa ChangeFlag = True 'Este programa va a cambiar la hora del sistema Call SetToOldTime ' Cambiar la hora del sistema Salir de FunctionEnd If

ChangeFlag = FalseWinProc = CallWindowProc(oldproc, hwnd, msg, lpara, wpara)

End Function

Public Function SetToOldTime( ) As String 'Restaura la hora a lo que era antes de configurarla

Dim tmp As String

tmp = OldTime 'Toma la hora del sistema

antes de la modificación del tiempo guardado

Dim lpSystemTime As SYSTEMTIME

lpSystemTime.wYear = Año(tmp) 'Obtener el año

lpSystemTime.wMonth = Mes( tmp ) 'Obtener el mes

lpSystemTime.wDayOfWeek = -1

lpSystemTime.wDay = Day(tmp) 'Obtener el número de días

lpSystemTime.wHour = Hora(tmp) 'Obtiene el número de horas

lpSystemTime.wMinute = Minuto(tmp) 'Obtiene el número de minutos

lpSystemTime.wMinute = Minuto(tmp) 'Obtiene el número de minutos

lpSystemTime .wMinute = Minuto(tmp) 'Obtener el número de minutos

lpSystemTime.wMinute = Minuto(tmp) 'Obtener el número de minutos