ich sitze auf der Arbeit hinter einer Firewall, welche die normale Synchronisation der Systemuhr per NTP über Port 123 verhindert. Die aktuelle Zeit z.B. von http://zeitaktuelle.de/ aufrufen, darf ich. Darum habe ich ein Beispielskript aus der AutoHotkey-Hilfe abgewandelt, welches mir, mit Adminrechten gestartet, die Systemuhr stellt. Auf ein paar Sekunden kommt es mir hierbei nicht an.
Leider wird bei einer Wiederholung des Skripts eine veraltete Zeit eingestellt, so als ob die Seite aus einem Cache gelesen wird. Läßt sich dies verhindern?
Code: Select all
;https://ragnar-f.github.io/docs/commands/URLDownloadToFile.htm
; Beispiel: Einen asynchronen HTTP-Request machen.
req := ComObjCreate("Msxml2.XMLHTTP")
; Öffnet einen Request mit aktivierter async.
req.open("GET", "http://zeitaktuelle.de/", true)
; ruft eine berliner Atomuhr auf
req.onreadystatechange := Func("Ready")
; Sendet den Request. Ready() wird aufgerufen, wenn es fertig ist.
req.send()
#Persistent
Ready()
{
global req
if (req.readyState != 4) ; Noch nicht fertig.
return
if (req.status == 200 || req.status == 304) ; OK.
{
q := req.responseText ;Text der Seite
q := SubStr(q, InStr(q,">var currenttime") + 35,8) ;Uhrzeit extrahiert
RunWait, %ComSpec% /c Time %q%,,Hide ;Systemuhr setzen
}
else
MsgBox 16,, % "Status " req.status
ExitApp
}