![]() |
Probleme mit SetSytemTime
Hallo,
ich hab Probleme mit SetSytemTime(). Hab folgendes probiert: Ich hab das Jahr, den Monat und den Tag aus einer Ini lesen lassen. Funzt natürlich auch. Nun wollte ich einer Variablen (Time) des Typs TSystemTime ein neues Jahr, einen neuen Monat und einen neuen Tag zuweisen. Klappt auch noch. Und dann hab ich einfach folgendes gemacht:
Delphi-Quellcode:
Aber die Funktion liefert mir false. Kann mir jemand sagen, woran das liegt/liegen kann?
SetSystemTime(Time)
|
Re: Probleme mit SetSytemTime
Vielleicht hast du nicht die Berechtigungen, die Systemzeit zu setzen? Probier mal händisch, die Zeit zu ändern!
|
Re: Probleme mit SetSytemTime
Das klappt ohne weiteres. Bin ja Admin!
Hat noch jemand eine Idee? Danke für bisherige Hilfe! |
Re: Probleme mit SetSytemTime
Hi Daniel,
Meine Win32 SDK-Hilfe schreibt folgendes: The SetSystemTime function sets the current system time and date. The system time is expressed in Coordinated Universal Time (UTC). BOOL SetSystemTime( CONST SYSTEMTIME *lpSystemTime // address of system time to set ); Parameters lpSystemTime Points to a SYSTEMTIME structure that contains the current system date and time. The wDayOfWeek member of the SYSTEMTIME structure is ignored. Return Values If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. Meinen Englischkenntnissen nach darfst du also nicht die Zeit mitgeben, sondern die Adresse auf die SYSTEMTIME-Struktur, in welcher das Datum und die Zeit stehen. Vielleicht hilft dir das weiter, und sonst [msdn:e77687c994="SetSystemTime"]klick mal hier[/msdn:e77687c994]. Greetz alcaeus |
Re: Probleme mit SetSytemTime
Das mach ich ja nicht. (War oben doof von mir ge/beschrieben). Hier mal mein Code:
Delphi-Quellcode:
Ich weise ja TimeVar ein neues Datum zu, und setze dann TimeVar mit SetSystemTime. Aber ich bekomme immer false.
var
TimeVar: TSystemTime; Year: Word; Month: Word; Day: Word; Ini: TIniFile; begin If FileExists('FCC.ini') then begin Ini := TIniFile.Create('FCC.ini'); Year := Ini.ReadInteger('data','year',2003); Month := Ini.ReadInteger('data','month',1); Day := Ini.ReadInteger('data','day',1); TimeVar.wYear := Year; TimeVar.wMonth := Month; TimeVar.wDay := Day; If SetSystemTime(TimeVar) then ShowMessage('OK') else ShowMessage('Nicht OK'); end else ShowMessage('ERROR'); |
Re: Probleme mit SetSytemTime
Versuch mal, die anderen Werte zu initialisieren (wMilliseconds usw.)
(*Welche Uhrzeit steht denn im INI-File? SystemTime ist nämlich eine "GMT"-Zeit, d.h. der Rechner addiert ne Std. für MEZ und noch eine für MESZ!*) --> edit: Unfug gedacht :wall: Gruß Stephan |
Re: Probleme mit SetSytemTime
Setzt alles andere auf Null, dann gehts:
Delphi-Quellcode:
FillChar(TimeVar, SizeOf(TimeVar), 0);
TimeVar.wYear := Year; TimeVar.wMonth := Month; TimeVar.wDay := Day; |
Re: Probleme mit SetSytemTime
OK! Klappt jetzt prima. Danke!
|
Re: Probleme mit SetSytemTime
Moin Daniel,
dazu noch ein kleiner Tip: Wenn bei einer Funktion dokumentiert ist, dass man eine nähere Fehlerbeschreibung durch Aufruf von GetLastError erhalten kann, kannst Du dir mit
Delphi-Quellcode:
die Ursache im Klartext anschauen.
ShowMessage(SysErrorMessage(GetLastError));
Manchmal kann das weiterhelfen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz