15/11/19 18:32
bixbicio
Ciao a tutti... innanzitutto chiedo scusa se l'argomento è già stato discusso nel passato... ho cercato nel forum ma non mi pare di aver trovato nulla
il mio micropc inizia a fare le bizze e non carica piu bene la batteria tampone per cui l'orologio interno rimane sempre indietro... ho cambiato diverse batterie ma nulla da fare
su questo PC gira un programmino domotico che ho fatto io in VB6 e ovviamente il clock che non si aggiorna correttamente è un bel problema...
per risolvere senza cambiare il pc pensavo di aggiungere una routine al mio programma che periodicamente leggesse l'ora da internet e aggiustasse il clock se necessario...
qualcuno avrebbe qualche esempio di routine in VB6 per leggere l'ora da internet?
ringrazio in anticipo
Fabrizio
aaa
15/11/19 19:11
nessuno
Lo fa il sistema operativo se correttamente configurato.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità
chiamava il gioco del Lotto Tassa sulla stupidità.
19/11/19 17:39
bixbicio
dovrebbe farlo... ma non mi chiedere perchè non lo fa... quando chiedo la data e l'ora con i classici comandi di vb6, mi risponde con la data di sistema (quella mantenuta viva dalla batteria tampone) che non è piu affidabile...
per questo vorrei leggere la data di internet per confrontarla con la data di sistema ed eventualmente correggerla
aaa
19/11/19 18:20
nessuno
Io ti consiglio di rimediare al problema della sincronizzazione con il SO.
Di quale sistema si tratta e come è configurato?
In ogni caso, codice del genere lo trovi ovunque ...
Public Function GetTime(Optional utc As Boolean) As String
Dim SvrName, xPost, HttpAdd, NowTime, StartTime
StartTime = Now
NowTime = ""
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\.\root\cimv2")
Set colTimeZone = objWMIService.ExecQuery("Select * from Win32_computersystem")
For Each objTimeZone In colTimeZone
offset = objTimeZone.currenttimezone
Next
Set xPost = CreateObject("Microsoft.XMLHTTP")
xPost.Open "Put", "http://time.nist.gov:13", False
xPost.Send
If xPost.readyState = 4 Then
NowTime = Mid(xPost.responsetext, 8, 17)
If NowTime <> "" Then
NowTime = Mid(NowTime, 7, 2) & Mid(NowTime, 3, 4) & Left(NowTime, 2) & Mid(NowTime, 9)
NowTime = CDate(NowTime)
If Not utc Then NowTime = CDate(NowTime) + offset / 60 / 24
GetTime = NowTime
Else
xPost.abort
End If
End If
If DateDiff("s", StartTime, Now) >= 10 And NowTime = "" Then
GetTime = "Problemi nella connessione Internet"
End If
Set xPost = Nothing
End Function
Ultima modifica effettuata da nessuno 19/11/19 19:01
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità
chiamava il gioco del Lotto Tassa sulla stupidità.