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 Systemzeit ändern (Win7 x64) (https://www.delphipraxis.net/155613-systemzeit-aendern-win7-x64.html)

p7SXGxyS 31. Okt 2010 19: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 19: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 20: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 20: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 20: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 20: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 20: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 20: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 20: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 17: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:

rollstuhlfahrer 1. Nov 2010 17:21

AW: Systemzeit ändern (Win7 x64)
 
kurze Frage: macht dein Rechner die Sommer-/Winterzeitumstellung nicht automatisch? Wenn nicht würde ich mal eher die Einstelungen prüfen, als halbjährlich an der Zeit rumzudrehen.

Bernhard

PS: Und für Auslandsbesuche gibt es sogar Zeitzonen, die man einstellen kann.

p7SXGxyS 1. Nov 2010 18:35

AW: Systemzeit ändern (Win7 x64)
 
Das mit den Stunden war nur ein Test. Ich hab hier Shareware die nach soundsoviel Tagen abläuft. Und ich hab jetz ein Programm welches im Autostart das Datum zurücksetzt. Und bevor die Frage kommt warum ich nicht gleich auf 1900 stelle: Das merkt die Shareware. :wink:

Luckie 1. Nov 2010 18:38

AW: Systemzeit ändern (Win7 x64)
 
Offensichtlich findet du das Programm gut, sonst würdest du nicht so einen Aufwand treiben, um das Programm weiter nutzen zu können. Denkst du nicht auch, es wäre nur fair es dann auch zu kaufen?

p7SXGxyS 1. Nov 2010 18:46

AW: Systemzeit ändern (Win7 x64)
 
Kaufen tun die, die mehr als den arg beschränkten Funktionsumfang der Shareware brauchen.

Luckie 1. Nov 2010 18:51

AW: Systemzeit ändern (Win7 x64)
 
Nein, kaufen tun die, die die Software nutzen wollen. Dass bei der Vollversion noch zusätzliche Funkionen dabei sind, ist wohl nur als zusätzlicher Kaufanreiz gedacht.

p7SXGxyS 1. Nov 2010 19:14

AW: Systemzeit ändern (Win7 x64)
 
Nunja, ich hab wohl andere Ansichten als du. Aber ich erachte es nicht als sinnvoll hier jetzt weiter darüber zu diskutieren.

Luckie 1. Nov 2010 19:19

AW: Systemzeit ändern (Win7 x64)
 
Ich schon, das Problem ist ja jetzt gelöst - leider muss man da wohl sagen. Würdest du es auch gut finden, wenn jemand deine Shareware nutzt, in die du viel Zeit, Mühe und Arbeit investiert hast, ohne dafür zu bezahlen und den Sharewareschutz umgeht? Ich denke nicht. Und gerade als Programmierer sollte man in der Lage sein, die Arbeit eines anderen Programmierers zu schätzen und zu würdigen. Aber anscheinend täusche ich mich da, zumindest in deinem Fall. Aber du solltest dich nicht wundern, wenn jetzt die Hilfe dir gegenüber eher mager ausfällt.

Codehunter 7. Mär 2011 08:55

AW: Systemzeit ändern (Win7 x64)
 
Tja so einen Fall hatte ich auch mal. Shareware - Programm recht gut - Nach 30 Tagen nur noch eine Demo. Hätts auch gerne gekauft aber leider... Hersteller pleite. Dank solcher Leute die an der Uhr drehen (möchte man meinen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 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 by Thomas Breitkreuz