Wie stelle ich die Windows-Systemuhr mit C # auf die korrekte Ortszeit ein?

8

Wie stelle ich mit C # die Windows-Systemuhr auf die korrekte Ortszeit ein?

    
The Mask 21.05.2011, 17:03
quelle

4 Antworten

10

Sie müssen die Funktion SetLocalTime über die Windows-API aufrufen / aufrufen. Deklariere es so in C #:

%Vor%

Um die Zeit einzustellen, initialisieren Sie einfach eine Instanz der SYSTEMTIME -Struktur mit den entsprechenden Werten und rufen die Funktion auf. Beispielcode:

%Vor%

Beachten Sie jedoch, dass der aufrufende Prozess über die entsprechenden Berechtigungen verfügen muss, um diese Funktion aufrufen zu können. In Windows Vista und höher bedeutet dies, dass Sie eine Prozesshöhe anfordern müssen.

Alternativ können Sie auch die Funktion SetSystemTime verwenden, mit der Sie die Funktion festlegen können Zeit in UTC (koordinierte Weltzeit). Dieselbe SYSTEMTIME -Struktur wird verwendet, und die beiden Funktionen werden auf identische Weise aufgerufen.

    
Cody Gray 21.05.2011, 17:09
quelle
6

.NET stellt keine Funktion dafür bereit, aber Sie können die Win32-API SetSystemTime (in kernel32.dll) -Methode. Um UTC-Zeit zu erhalten, sollten Sie einen NTP-Protokoll-Client und passen Sie diese Zeit entsprechend Ihrer regionalen Einstellungen an die lokale Zeit an.

%Vor%     
Teoman Soygul 21.05.2011 17:06
quelle
2

Hier sind ein paar Artikel darüber, wie man das macht, indem man eine Atomuhr zur richtigen Zeit abfragt.

Ссылка

Ссылка

    
Joel Mueller 21.05.2011 17:07
quelle
0

Um das Berechtigungsproblem SE_SYSTEMTIME_NAME zu umgehen, erstellen Sie eine geplante Aufgabe, um Ihre Anwendung auszuführen, und aktivieren Sie "Mit höchsten Berechtigungen ausführen".

    
Edgar 09.03.2016 13:07
quelle

Tags und Links