AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi wm_timechange beim Sperren von windows
Thema durchsuchen
Ansicht
Themen-Optionen

wm_timechange beim Sperren von windows

Ein Thema von TomyN · begonnen am 23. Jul 2023 · letzter Beitrag vom 24. Jul 2023
Antwort Antwort
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
252 Beiträge
 
Delphi 10.3 Rio
 
#1

wm_timechange beim Sperren von windows

  Alt 23. Jul 2023, 23:08
Hallo

Ich habe hier ein seltsames Phänomen:
Meine Anwendung ist 'systemzeitsensitiv', daher lauscht sie auf WM_TIMECHANGE.
Das funktioniert auch, nur bekomme ich (getestet unter win10/64) diese Nachricht auch dann, wenn ich nur den Bildschirm sperre ( windowstaste + L), obwohl sich da die Systemzeit nicht ändert.
Ist das normal? Gibt es eine andere (nicht zu komplizierte) Möglichkeit, einen Änderung der Systemzeit festzustellen.

Grüße und Segen
Tomy
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
442 Beiträge
 
Delphi 12 Athens
 
#2

AW: wm_timechange beim Sperren von windows

  Alt 23. Jul 2023, 23:23
Du könntest beim Start der Anwendung eine Art Differenz zwischen der aktuellen Systemzeit und GetTickCount bilden. Bei jedem Ereignis WM_TIMECHANGE könntest du dann wieder die Differenz zwischen Systemzeit und GetTickCount bilden und mit der ursprünglichen Differenz vergleichen. Ist die Differenz nahezu identisch wie bei der letzten Messung (vielleicht +/- 16 ms), wurde die Systemzeit nicht verändert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: wm_timechange beim Sperren von windows

  Alt 24. Jul 2023, 02:00
Es ändert sich zwar nicht die Uhrzeit, aber die Einstellungen der Zeit,
der andere Desktop hat z.B. eventuell ein anderes DatumsFormat.

PS: WM_TIMECHANGE wird im Delphi von allen TWinControl verarbeitet/empfangen.
Gut, den Broadcast empfangen nur die TopLevel-Controls/Forms (TForm ist ein TWinCopntrol),
aber das empfangene WM_TIMECHANGE wird, als CM_TIMECHANGE an sich selbst geschickt und dann an alle unter UnterControls durchgereicht,
also an jeden anderen TWinControl-Nachfahre, welcher auf der Form liegt, inkl. der Form selber.
$2B or not $2B
  Mit Zitat antworten Zitat
Alt 2. Nov 2023, 08:42     Erstellt von cormiercamilla
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 Uhr.
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