Systemzeit einstellen C++ / MFC
-
Hallo zusammen,
(WinXP Prof, MS Visual C++ 6.0 / MFC)
ich habe ein Problem, welches denke ich nicht besonders schwer ist, ich komm nur leider grad nicht drauf.
ich möchte gerne aus einem Dialog heraus (SDI-Anwendung) die Systemzeit einstellen.
Mein Code sieht folgendermaßen aus:COleDateTime Time_Date; UpdateData(TRUE); Time_Date.SetDateTime(m_Year, m_Month, m_Day, m_Std, m_Min, 0 );
mit UpdateData(TRUE) lese ich aus EditBoxen die eingegebenen Werte(int) aus...
Hoffe der Code ist verständlich.
Problem ist, dass alles ohne Fehlermeldung funktioniert...nur wird die Systemzeit nicht verändert...
An was könnte das denn liegen?Vielen Dank für Eure Hilfe
MfG Dippi
-
Dippi_81 schrieb:
An was könnte das denn liegen?
Vielleicht daran, das dein Time_Date nix mit der Systemzeit zu tun hat ?
Was ist denn das ? Eine Membervariable von irgendeinem Control ?Evtl. brauchst du statt dessen
BOOL SetSystemTime( CONST SYSTEMTIME *lpSystemTime // address of system time to set );
-
Dippi_81 schrieb:
Problem ist, dass alles ohne Fehlermeldung funktioniert...nur wird die Systemzeit nicht verändert...
An was könnte das denn liegen?Ganz einfach - die Methode ist gar nicht dafür vorgesehen, die Systemzeit zu verändern. Dafür benötigst du die Funktion *tada* SetSystemTime().
-
Mit
Time_Date.SetDateTime(m_Year, m_Month, m_Day, m_Std, m_Min, 0 );
setzt du das OleDateTime-Object auf den Wert, den du mit m_Year, m_Month, m_Day, m_Std, m_Min eingetragen hast. Willst du diesen Wert im Dialog anzeigen, so musst du UpdateDate(FALSE) nehmen
Willst du dein Feld aber auf die aktuelle Systemzeit des PC setzen, musst du dir die Zeit vorher erst holen mit
Time_Date= COleDateTime::GetCurrentTime();
Tester2
-
So jetzt bin ich einen Schritt weiter, aber es geht noch immer nicht...
Das Setzten der Zeit hier soll nur ein Beispiel sein...(also 11, 44 und 00)
SYSTEMTIME a; a.wHour = 11; a.wMinute = 44; a.wSecond = 00; SetSystemTime(&a);
Sorry wenns für euch vielleicht eine etwas blöde Frage ist...
MfG Dippi
-
Du musst vielleicht die komplette Struktur von SYSTEMTIME setzen (also mit Datum; wDayOfWeek kannst Du auf 0 lassen)