Ich habe mir eine Funktion geschrieben, die mir anhand der aktuell unter Windows eingestellten Zeitzone den Zeitzonenschlüssel holt, und daraus ein spezielles Zeitzonen-Objekt für Exchange WebServices generiert.
Die aktuell eingestellte Zeitzone findet man unter:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
Den entsprechenden Schlüssel findet man unter:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\W. Europe Standard Time]
Unter den beiden Pfaden gibt es die zwei Einträge „Std/StandardName“ (=“Westeuropäische Normalzeit“) und „Dlt/DaylightName“ (=“Westeuropäische Sommerzeit“).
Die Funktion läuft über alle Zeitzonen-Schlüssel in [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones] und vergleicht die beiden Werte. Stimmen die beiden Werte überein, hat man die Zeitzone gefunden, die man braucht.
So weit, so gut. Das funktioniert auch alles wunderbar.
Ich habe nur festgestellt, dass auf manchen Rechnern die Einträge unter [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] falsch sind. Dort steht nämlich unter „DaylightName“ nicht “Westeuropäische Sommerzeit“ sondern „Westeuropäische Normalzeit“. So findet meine Funktion natürlich nicht die passende Zeitzone. Korrigier eich den Schlüssel manuell in der Registry, arbeitet meine Funktion korrekt, und findet die gesuchte Zeitzone.
Das merkwürdige ist, dass ich hier zwei WinXP Prof. SP3 Rechner habe. Der eine hängt am Internet und hat auch fast alle Patches, der andere hängt nicht am Internet (und ich kann ihn auch nicht dran hängen). Auf beiden ist die gleiche Zeitzone eingestellt.
Auf dem mit Internetzugang ist der Schlüssel korrekt. Auf dem ohne Internet ist der Schlüssel falsch.
Das lässt mich darauf schließen, dass es irgendwann einen Patch von Microsoft gab, der den Fehler behoben hat. Ich habe allerdings schon gegoogelt, und keine Info zu dem Patch gefunden.
Mein Problem ist nur, dass wenn die Applikation nun an den Kunden geht, ich ihm mitteilen muss, dass er Patch xyz installieren muss, damit es richtig funktioniert. Dazu muss ich aber erst wissen, welches Patch das ist.
Gibt es da eine Möglichkeit das herauszufinden?
Die aktuell eingestellte Zeitzone findet man unter:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
Den entsprechenden Schlüssel findet man unter:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\W. Europe Standard Time]
Unter den beiden Pfaden gibt es die zwei Einträge „Std/StandardName“ (=“Westeuropäische Normalzeit“) und „Dlt/DaylightName“ (=“Westeuropäische Sommerzeit“).
Die Funktion läuft über alle Zeitzonen-Schlüssel in [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones] und vergleicht die beiden Werte. Stimmen die beiden Werte überein, hat man die Zeitzone gefunden, die man braucht.
So weit, so gut. Das funktioniert auch alles wunderbar.
Ich habe nur festgestellt, dass auf manchen Rechnern die Einträge unter [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] falsch sind. Dort steht nämlich unter „DaylightName“ nicht “Westeuropäische Sommerzeit“ sondern „Westeuropäische Normalzeit“. So findet meine Funktion natürlich nicht die passende Zeitzone. Korrigier eich den Schlüssel manuell in der Registry, arbeitet meine Funktion korrekt, und findet die gesuchte Zeitzone.
Das merkwürdige ist, dass ich hier zwei WinXP Prof. SP3 Rechner habe. Der eine hängt am Internet und hat auch fast alle Patches, der andere hängt nicht am Internet (und ich kann ihn auch nicht dran hängen). Auf beiden ist die gleiche Zeitzone eingestellt.
Auf dem mit Internetzugang ist der Schlüssel korrekt. Auf dem ohne Internet ist der Schlüssel falsch.
Das lässt mich darauf schließen, dass es irgendwann einen Patch von Microsoft gab, der den Fehler behoben hat. Ich habe allerdings schon gegoogelt, und keine Info zu dem Patch gefunden.
Mein Problem ist nur, dass wenn die Applikation nun an den Kunden geht, ich ihm mitteilen muss, dass er Patch xyz installieren muss, damit es richtig funktioniert. Dazu muss ich aber erst wissen, welches Patch das ist.
Gibt es da eine Möglichkeit das herauszufinden?