ATUALIZAR DATA/HORA VB.NET

KALI 07/01/2016 02:17:46
#455824
Olá,

Hoje se foi a minha pilha da bios.. Sei que é barata mas sempre é bom ter um quebra galho..

Alguém sabe como fazer um aplicativo para buscar a data e hora atual em um site (servidor) e atualize a data e hora do windows 7? Se possível depois é só colocar uma chave no registro, assim a aplicativo inicia com windows e atualiza automaticamente.
KURTGU 07/01/2016 07:40:57
#455825
Segue alguns Links..

https://social.msdn.microsoft.com/Forums/pt-BR/0c87eef6-9e74-4524-ad5a-eb6c0435bcb8/alterar-data-do-sistema-vb2005
http://forum.clubedohardware.com.br/topic/994635-resolvido-atualizar-hora-automaticamente-ao-iniciar-o-windows/
KALI 07/01/2016 13:44:54
#455836
Gostaria de fazer o ajuste automático por um servidor ex: http://www.horariodebrasilia.org/
Quando abrir o form ele atualize a data e hora assim como disse coloco o programa para iniciar com o windows assim fica automatico.
KALI 07/01/2016 14:07:34
#455839
Como eu passo a data e hora do site http://www.horariodebrasilia.org/ para uma textbox ou label?
Vi que a ID = relogio

sei passar o valor da textbox para o site mas não do site para textbox
KURTGU 07/01/2016 14:13:31
#455840
tenta isso...
YourLabel.Text = Wb.Document.GetElementById([Ô]yourId[Ô]).GetAttribute([Ô]value[Ô])
KALI 07/01/2016 14:30:45
#455842
A label desaparece.. quando clico no botão

WebBrowser1.Navigate([Ô]http://www.horacerta.com.br/[Ô])
Label1.Text = WebBrowser1.Document.GetElementById([Ô]mostrador[Ô]).GetAttribute([Ô]value[Ô])
KURTGU 07/01/2016 14:44:21
#455844
voce tem que colocar Label1.Text = WebBrowser1.Document.GetElementById([Ô]mostrador[Ô]).GetAttribute([Ô]value[Ô]) isso no documentcompleted do webbrowser...
KURTGU 07/01/2016 14:55:54
#455845
Aqui use isto....

Imports System.Net.Sockets
Imports System.Net

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.Text = GetNetworkTime()

End Sub

Public Shared Function GetNetworkTime() As DateTime
[ô]Servidor nacional para melhor latência
Const ntpServer As String = [Ô]a.ntp.br[Ô]

[ô] Tamanho da mensagem NTP - 16 bytes (RFC 2030)
Dim ntpData = New Byte(47) {}

[ô]Indicador de Leap (ver RFC), Versão e Modo
ntpData(0) = &H1B
[ô]LI = 0 (sem warnings), VN = 3 (IPv4 apenas), Mode = 3 (modo cliente)
Dim addresses = Dns.GetHostEntry(ntpServer).AddressList

[ô]123 é a porta padrão do NTP
Dim ipEndPoint = New IPEndPoint(addresses(0), 123)
[ô]NTP usa UDP
Dim socket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)

socket.Connect(ipEndPoint)

[ô]Caso NTP esteja bloqueado, ao menos nao trava o app
socket.ReceiveTimeout = 3000

socket.Send(ntpData)
socket.Receive(ntpData)
socket.Close()

[ô]Offset para chegar no campo [Ô]Transmit Timestamp[Ô] (que é
[ô]o do momento da saída do servidor, em formato 64-bit timestamp
Const serverReplyTime As Byte = 40

[ô]Pegando os segundos
Dim intPart As ULong = BitConverter.ToUInt32(ntpData, serverReplyTime)

[ô]e a fração de segundos
Dim fractPart As ULong = BitConverter.ToUInt32(ntpData, serverReplyTime + 4)

[ô]Passando de big-endian pra little-endian
intPart = SwapEndianness(intPart)
fractPart = SwapEndianness(fractPart)

Dim milliseconds = (intPart * 1000) + ((fractPart * 1000) / &H100000000L)

[ô]Tempo em **UTC**
Dim networkDateTime = (New DateTime(1900, 1, 1, 0, 0, 0, DateTimeKind.Utc)).AddMilliseconds(CLng(milliseconds))

Return networkDateTime.ToLocalTime()
End Function

[ô] stackoverflow.com/a/3294698/162671
Private Shared Function SwapEndianness(x As ULong) As UInteger
Return CUInt(((x And &HFF) << 24) + ((x And &HFF00) << 8) + ((x And &HFF0000) >> 8) + ((x And &HFF000000UI) >> 24))
End Function
End Class
KURTGU 07/01/2016 15:10:16
#455848
Resposta escolhida
[txt-color=#e80000]Ao terminar nao esquece de fechar o topico e pontuar...[/txt-color]
KALI 07/01/2016 16:13:56
#455853
Tudo certo com os 2 post do KURTGU apená adaptei algumas funções.. Para quem quiser fica abaixo:

Imports System.Net.Sockets
Imports System.Net
Imports System.IO

Public Class Form1

Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
Me.WindowState = FormWindowState.Normal [ô]abre o aplicativo com duplo click[ô]
Me.Show()
End Sub
Private Function InternetConnection() As Boolean [ô]Checa se o pc está conectado a internet[ô]
Dim req As System.Net.WebRequest = System.Net.WebRequest.Create([Ô]http://www.google.com/[Ô])
Dim resp As System.Net.WebResponse
Try
resp = req.GetResponse()
resp.Close()
req = Nothing
Return True
Catch ex As Exception
req = Nothing
Return False
End Try
End Function


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Minimized [ô]inicia minimizado[ô]

[ô]Cria registro para iniciar com o windows[ô]
Dim FileName As String
Dim FilePath As Object
Dim RegistryKey As Object
FileName = [Ô]AutoDataHora.exe[Ô]
FilePath = Path.GetFullPath(FileName)
RegistryKey = CreateObject([Ô]WScript.Shell[Ô])
RegistryKey.RegWrite([Ô]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\AutoDataHora[Ô], FilePath)

If InternetConnection() = False Then [ô]Se não tem conexão com internet[ô]
MsgBox([Ô]Não é possivel ajustar a data e hora! Você não está conectado a internet![Ô])
Else
[ô]Se tiver conexão com internet ajusta data e hora[ô]
Label1.Text = GetNetworkTime()
Today = CDate((Label1.Text))
TimeOfDay = CDate((Label1.Text))
End If


End Sub

Public Shared Function GetNetworkTime() As DateTime
[ô]Servidor nacional para melhor latência
Const ntpServer As String = [Ô]a.ntp.br[Ô]

[ô] Tamanho da mensagem NTP - 16 bytes (RFC 2030)
Dim ntpData = New Byte(47) {}

[ô]Indicador de Leap (ver RFC), Versão e Modo
ntpData(0) = &H1B
[ô]LI = 0 (sem warnings), VN = 3 (IPv4 apenas), Mode = 3 (modo cliente)
Dim addresses = Dns.GetHostEntry(ntpServer).AddressList

[ô]123 é a porta padrão do NTP
Dim ipEndPoint = New IPEndPoint(addresses(0), 123)
[ô]NTP usa UDP
Dim socket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)

socket.Connect(ipEndPoint)

[ô]Caso NTP esteja bloqueado, ao menos nao trava o app
socket.ReceiveTimeout = 3000

socket.Send(ntpData)
socket.Receive(ntpData)
socket.Close()

[ô]Offset para chegar no campo [Ô]Transmit Timestamp[Ô] (que é
[ô]o do momento da saída do servidor, em formato 64-bit timestamp
Const serverReplyTime As Byte = 40

[ô]Pegando os segundos
Dim intPart As ULong = BitConverter.ToUInt32(ntpData, serverReplyTime)

[ô]e a fração de segundos
Dim fractPart As ULong = BitConverter.ToUInt32(ntpData, serverReplyTime + 4)

[ô]Passando de big-endian pra little-endian
intPart = SwapEndianness(intPart)
fractPart = SwapEndianness(fractPart)

Dim milliseconds = (intPart * 1000) + ((fractPart * 1000) / &H100000000L)

[ô]Tempo em **UTC**
Dim networkDateTime = (New DateTime(1900, 1, 1, 0, 0, 0, DateTimeKind.Utc)).AddMilliseconds(CLng(milliseconds))

Return networkDateTime.ToLocalTime()
End Function

[ô] stackoverflow.com/a/3294698/162671
Private Shared Function SwapEndianness(x As ULong) As UInteger
Return CUInt(((x And &HFF) << 24) + ((x And &HFF00) << 8) + ((x And &HFF0000) >> 8) + ((x And &HFF000000UI) >> 24))
End Function

End Class


(uma grande ajuda para que fica sem pilha da bios)
Tópico encerrado , respostas não são mais permitidas