veralterter Internetseiteninhalt

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Rohwedder
Posts: 7774
Joined: 04 Jun 2014, 08:33
Location: Germany

veralterter Internetseiteninhalt

15 Apr 2016, 08:51

Hallo,
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
}
Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

21 Apr 2016, 03:47

Eventuell so, je nachdem wie Du das Script aufrufst, z.B über den Taskplaner:
#SingleInstance force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen

Bei mir funktioniert es aber leider gar nicht:
Eigentlich eine Super Idee, ich habe es in eine exe Datei kompiliert, mit Adminrechten gestartet, aber da wird nichts gestellt...
System: Windows 7 64 bit Professional / Firewall kurz deaktiviert / leider keine Veränderung...
Greetings Best-Code-in-Use
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: veralterter Internetseiteninhalt

21 Apr 2016, 04:15

Du könntest mal req.setRequestHeader("cache-control", "max-age=0") oder req.setRequestHeader("cache-control", "private") nach req.open() versuchen
und Msxml2.XMLHTTP durch Msxml2.ServerXMLHTTP auszutauschen.

Ref: How to make Microsoft XmlHttpRequest honor cache control directive (Stackoverflow)
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

21 Apr 2016, 19:34

Danke jNizM, also so:
Atomzeit
Bei mir funktioniert es jetzt perfekt, vielen Dank für Deine Hilfe, jNizM....

@Rohwedder

Wenn es Dir Recht ist, würde ich es unter Skripte und Funktionen einstellen wollen?


Falls es Dir nicht Recht ist, dann halt nicht, kein Thema. Aber ich glaube das es auch einige andere Nutzer sinnvoll finden werden. :D
Selbstverständlich wirst Du als Autor genannt, das ist im hier eingebundenen Script bereits erledigt...
Last edited by Best-Code-in-Use on 23 Apr 2016, 01:33, edited 1 time in total.
Greetings Best-Code-in-Use
Rohwedder
Posts: 7774
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: veralterter Internetseiteninhalt

22 Apr 2016, 01:52

Hallo Best-Code-in-Use,
habe natürlich nichts dagegen. Auf der Seite https://uhr.ptb.de/ dort Abweichung aktivieren, sieht man die aktuelle Abweichung: Systemuhr - braunschweiger Atomuhr.
Die braunschweiger Caesiumatome schwingen immer etwas schneller als die berliner!
Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

Re: veralterter Internetseiteninhalt

22 Apr 2016, 12:00

Hallo Rohwedder,
Die braunschweiger Caesiumatome schwingen immer etwas schneller als die berliner!
Ja nee is klar... :superhappy:

Nein Spaß beiseite, es freut mich sehr das Du das Script teilen möchtest. Ich werde mich über das Wochenende mal darum kümmern.

So ein paar Kleinigkeiten könnten wir zukünftig vielleicht noch verbessern...

1.) Der Server ist down oder generell ist eine Netzwerkverbindung nicht möglich (weil z.B. eine DSL Störung vorliegt), die Seite ist nicht erreichbar, dies kann mit einer Schleife und / oder einem Timer abgefangen werden.
2.) die MsgBox, sollte für die Ausführung als Batch per Taskplaner vielleicht deaktiviert werden.

Aber erst einmal, Super und es funktioniert...

Du kannst übrigens mit diesem Script von moefr01 unter= https://autohotkey.com/boards/viewtopic ... 10&t=10733
auf Rechnern ohne Admin Rechte mit vollen Rechten per Taskplaner die exe Datei starten.
Greetings Best-Code-in-Use
Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

erledigt...

23 Apr 2016, 01:54

Wie versprochen habe ich das Skript veröffentlicht: https://autohotkey.com/boards/viewtopic ... 10&t=16670
In diesem Sinne wünsche ich ein schönes Wochenende.
Greetings Best-Code-in-Use

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: effel and 44 guests