Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Probleme mit SetSytemTime (https://www.delphipraxis.net/30424-probleme-mit-setsytemtime.html)

daniel8520 24. Sep 2004 15:10


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:
SetSystemTime(Time)
Aber die Funktion liefert mir false. Kann mir jemand sagen, woran das liegt/liegen kann?

JasonDX 24. Sep 2004 15:13

Re: Probleme mit SetSytemTime
 
Vielleicht hast du nicht die Berechtigungen, die Systemzeit zu setzen? Probier mal händisch, die Zeit zu ändern!

daniel8520 24. Sep 2004 15:16

Re: Probleme mit SetSytemTime
 
Das klappt ohne weiteres. Bin ja Admin!
Hat noch jemand eine Idee?

Danke für bisherige Hilfe!

alcaeus 24. Sep 2004 15:23

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

daniel8520 24. Sep 2004 15:27

Re: Probleme mit SetSytemTime
 
Das mach ich ja nicht. (War oben doof von mir ge/beschrieben). Hier mal mein Code:
Delphi-Quellcode:
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');
Ich weise ja TimeVar ein neues Datum zu, und setze dann TimeVar mit SetSystemTime. Aber ich bekomme immer false.

Steve 24. Sep 2004 15:38

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

scp 24. Sep 2004 15:40

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;

daniel8520 24. Sep 2004 15:51

Re: Probleme mit SetSytemTime
 
OK! Klappt jetzt prima. Danke!

Christian Seehase 24. Sep 2004 18:40

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:
ShowMessage(SysErrorMessage(GetLastError));
die Ursache im Klartext anschauen.
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