Oppure

Loading
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à.