Uhrzeit / Datum stellen


Xo-mate

Erfahrenes Mitglied
Gefunden.
Hier der Code:

[DllImport("kernel32.dll", SetLastError=true)]
public static extern int SetLocalTime (ref SystemTime lpSystemTime);

//struct for date/time apis
public struct SystemTime
{
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;
}

public static void settime(short day,short month,short year,short hour,short minute,short second)
{
//create a new systemtime
SystemTime systNew = new SystemTime();

//set the properties
systNew.wDay = day;
systNew.wMonth = month;
systNew.wYear = year;
systNew.wHour = hour;
systNew.wMinute = minute;
systNew.wSecond = second;

//and update using the api
SetLocalTime(ref systNew);
}


ABER!
Hier die nächste Frage:
Wie stelle ich die jetzt nach der Atomuhr?
 
Zuletzt bearbeitet:

Norbert Eder

Erfahrenes Mitglied
Indem du das NTP (Network Time Protocol) mal genauer anguckst und dich damit auf einen Timeserver verbindest.
 

Xo-mate

Erfahrenes Mitglied
Norbert Eder hat gesagt.:
Indem du das NTP (Network Time Protocol) mal genauer anguckst und dich damit auf einen Timeserver verbindest.
"net time /setsntp:ptbtime1.ptb.de\" ist der Befehl, den man bei ausführen eingeben muss. Ich habs im Code so geschrieben:
System.Diagnostics.Process.Start("cmd /c \"net time /setsntp:ptbtime1.ptb.de\"");
Funktioniert aber nicht :(

Wenn ich bei der cmd mache, dann steht da zwar "Befehl erfolgreich ausgeführt", aber das stimmt nicht. Hat er gar nicht erfolgreich ausgeführt. Meine Uhrzeit ist noch genau so falsch wie vorher. :(