Frage

Wie legen Sie die Windows Zeit-zone auf dem lokalen Rechner programmgesteuert in C#?Mit einem interaktiven tool ist nicht eine option, weil der remote-Einheiten verfügen über keine Benutzeroberfläche oder Benutzer.Der remote-Maschine ausgeführt wird .NET 2.0 und Windows XP Embedded und eine lokale app, die die Kommunikation mit einem zentralen server (via web-service) zur automatisierten Ausrichtung Ihrer Aufgaben.Wir können liefern ein Befehl, um synchron zu einer bestimmten Zeit/zone-Kombination, aber welchen code kann man in die lokalen app zu erreichen die ändern?Die Ausrüstung ist nicht gesichert für bestimmte Bereiche vor der installation, um zu verwenden alle Geräte an jedem Standort, wir haben zu werden in der Lage, um mit der Synchronisierung dieser Informationen.

War es hilfreich?

Lösung

SetTimeZoneInformation sollte tun, was Sie brauchen.Sie müssen verwenden P/Invoke zu Holen Sie auf es.

Beachten Sie auch, dass Sie brauchen, zu besitzen, und aktivieren Sie die SE_TIME_ZONE_NAME Privileg.

Andere Tipps

Dies funktioniert nicht in Windows 7.Ich habe versucht, mit der folgenden Umgebung windows 7 VSTS 2008 Es ist das öffnen Zeitzone Ändern Fenster, wie wir es tun manuell

santosh Sie sind auf jeden Fall richtig.RunDLL32 shell32.dll,Control_RunDLL %SystemRoot%\system32 IMEDATE.cpl,,/Z %1 veraltet seit Jahren und wird weder laufen unter Windows 2008 R2, 7, Vista, ...oh, ja, ich bemerkte, dass dieses forum scheint zu haben eine komplette bug mit der Anerkennung der enter-Taste.vielleicht eines Tages der Programmierer das problem beheben.

Versuchen Sie diese...

Erste, Sie brauchen, um zu finden, bei der Registrierung, die Schlüssel das stellt Sie die gewünschte zone ("Central Standard Time" ist ein Beispiel).Diese befinden sich hier:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Zeitzonen

So, mit, dass in Geist, erstellen Sie eine batch-Datei, "SetTimeZone.bat" mit folgender Zeile:

RunDLL32 shell32.dll,Control_RunDLL %SystemRoot%\system32 IMEDATE.cpl,,/Z %1

Aus C# aufrufen:

System.Diagnose.Prozess.Start("SetTimeZone.Fledermaus", "Der Schlüssel der Zeit, die zone aus, die Sie wollen zu set");

Sie laufen Gefahr, dass falsche Daten, wenn Sie nicht verwenden, UTC sende Daten...Wenn Sie Zeitzonen ändern, die auf dem Gerät...Sie sind Termine werden noch weiter aus.

Sie möchten möglicherweise verwenden, UTC-Zeit und Berechnung der Zeit in jeder Zeitzone.

Anstatt nur die Einstellung der Zeitzone von einigen Systemen, die Sie betrachten sollten, ist die Verwendung der Windows-Zeitdienst.Es wird nicht nur mit der Zeitzone.Es wird auch darauf achten, über die richtige Einstellung von Datum und Zeit selbst.

Werfen Sie einen Blick auf: Wie synchronisieren Sie die Zeit mit den Windows-Zeitdienst in Windows XP

Auch wenn Sie vielleicht gehen, um alle diese Einstellungen in Vista oder Windows 7 werfen Sie einen Blick auf diese hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top