Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Systemzeit ändern (Win7 x64) (https://www.delphipraxis.net/155613-systemzeit-aendern-win7-x64.html)

p7SXGxyS 31. Okt 2010 18:45

Systemzeit ändern (Win7 x64)
 
Halloa,

ich möchte gerne mit einem programm die systemzeit um eine stunde erhöhen (23h->0h;tag+1)
das hab ich erstmal so versucht:

Delphi-Quellcode:
getsystemtime(timestruct);
if TimeStruct.wHour>=23 then
begin
  TimeStruct.wDay := TimeStruct.wDay+1;
  TimeStruct.wHour := 0;
end
else
begin
  TimeStruct.wHour := (TimeStruct.wHour+1);
end;
setlocaltime(timestruct);
aber das funktioniert nicht :(
wenn ich da mit F7 durchrausch dann scheint ein fehler bei getsystemtime() zu liegen, liefert nicht die korrekte zeit
weiß jemand warums nicht geht oder hat j. eine bessere lösung für og. problem?
ich nutze win7 professional 64bit

Luckie 31. Okt 2010 18:47

AW: Systemzeit ändern (Win7 x64)
 
Und wieder eine unvollständige Fehlerbehandlung. Du siehst doch, dass es offensichtlich zu einem Fehler kommt. Spätestens dann sollte man mal eine vollständige Fehlerbehandlung implementieren. Oder wie willst du meine Frage nach GetLastError beantworten? ;)

p7SXGxyS 31. Okt 2010 19:14

AW: Systemzeit ändern (Win7 x64)
 
Ok :-)

Delphi-Quellcode:
getsystemtime(timestruct);
  if TimeStruct.wHour>=23 then
  begin
    TimeStruct.wDay := TimeStruct.wDay+1;
    TimeStruct.wHour := 0;
  end
  else
  begin
    TimeStruct.wHour := (TimeStruct.wHour+1);
  end;


  if SetLocalTime(TimeStruct) then
    ShowMessage('1Up :-D')
  else
    RaiselastOSError;

die message erscheint! ich hab um 20:03 auf den button geklickt, getsystemtime liefert nur leider 19 uhr

Luckie 31. Okt 2010 19:16

AW: Systemzeit ändern (Win7 x64)
 
Zitat:

Zitat von p7SXGxyS (Beitrag 1058859)
getsystemtime liefert nur leider 19 uhr

Hilfe lesen hilft:
Zitat:

Retrieves the current system date and time. The system time is expressed in Coordinated Universal Time (UTC).
Und wir sind eine Stunde vorraus nach der Umstellung der Uhren.

p7SXGxyS 31. Okt 2010 19:22

AW: Systemzeit ändern (Win7 x64)
 
yippie, es geht :-D
danke, das war entscheidend

Delphi-Quellcode:
TimeStruct.wHour := (TimeStruct.wHour+2);

littleDave 31. Okt 2010 19:25

AW: Systemzeit ändern (Win7 x64)
 
Besser wäre wahrscheinlich MSDN-Library durchsuchenGetLocalTime, da du damit die lokale Zeit bekommt - also nicht mehr von UTC auf Local umrechnen musst.

Luckie 31. Okt 2010 19:28

AW: Systemzeit ändern (Win7 x64)
 
Und zwei mal im Jahr änderst du den Quellcode, kompilierst neu und verteilst es neu an alle Benutze*? Abgesehen mal davon, wenn der Benutzer eine andere Zeitzone hat. Bitte auch mal etwas weiter denken,als bis zum Gehäuse des eigenen Rechners.

Und auch hier hilft es die Hilfe zu lesen. Denn würdest du am Ende folgendes finden:
Code:
See Also

[B]GetLocalTime[/B]
GetSystemTimeAdjustment
GetSystemTimeAsFileTime
SetSystemTime
System Time
SYSTEMTIME
Time Functions
*) bevor diese es in den Papierkorb gekickt haben, weil die Zeit andauernd falsch ist?

p7SXGxyS 31. Okt 2010 19:36

AW: Systemzeit ändern (Win7 x64)
 
war zu voreilig, ging doch nicht, jetzt gehts aber wirklich
fehler war nur dass man mit setlocaltime nich die systemzeit beeinflusst bzw andersrum.
prob gelöst, danke für die hilfe. :)
ich geh schlafen.

Luckie 31. Okt 2010 19:40

AW: Systemzeit ändern (Win7 x64)
 
Zitat:

Zitat von p7SXGxyS (Beitrag 1058866)
fehler war nur dass man mit setlocaltime nich die systemzeit beeinflusst bzw andersrum.

Bitte noch mal in einem ganzen, verständlichen Satz.

p7SXGxyS 1. Nov 2010 16:08

AW: Systemzeit ändern (Win7 x64)
 
Es gibt eine Systemzeit und eine lokale Zeit. Die lokale sieht man in der Taskleiste und die Systemzeit ist was anderes. Dementsprechend muss man um die Taskleistenuhrzeit zu ändern/lesen setlocaltime/getlocaltime verwenden und nicht setsystemtime/getsystemtime. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz