Wie gesagt, es handelt sich um eine Desktop-Uhr.
Die zeichne ich in ein TBitmap und lade das Ganze in ein TImage auf der Form.
Die wird transparent gemacht, so dass ich nur noch den Kreis übrig habe.
Dann setzte ich WS_EX_LAYERED, so dass ich durch das Form "hindurchklicken" kann.
Zusätzlich gibt es maus-sensitives Alphablending. Also beim drüber fahren mit der Maus wird das Form fast ganz durchsichtig gemacht.
Das setzte ich mit einem Maus-Hook um, weil ja OnMouseEnter nicht mehr funktioniert.
Probleme dabei sind aber folgende:
Beim
- Sperren der Session (Win+L)
- nach dem Drücken von Strg+Alt+Entf (Die eingeblendete "Windowssicherheit" verhält sich genauso wie ein Sessionlock)
muss ich den Mousehook sowie alle Fenstereigenschaften neu setzen.
Alphablending geht sporadisch verloren, exlayered, also hindurchklickbar, geht auch nicht mehr und das maussensitive Alphablending geht wegen dem Hook nicht mehr.
Punkt 1 habe ich durch überwachen vom WM_SESSIONCHANGE und anschließendes Neu-Setzen des Hooks sowie der Fenstereigenschaften umgehen können.
Punkt 2 nur durch sporadisches Neu-Setzen der Eigenschaften.
So weit war das alles noch verkraftbar und lief gut.
Dann hatten sich allerdings Freezes von Windows gezeigt. Und zwar auf nahezu allen Rechnern wo das Programm lief.
Zeitweise hat der Rechnicht auf Keinerlei Eingaben mehr reagiert. Weder Maus, noch Tastatur. Erst nach dem Drücken von Strg+Alt+Entf oder dem Sperren der Session wurden wieder ein bis zwei Eingaben angenommen. Danach das gleiche Spiel.
Aufgehört hat das erst, als ich den Mousehook aus dem Programm entfernt habe.
Das ist jetzt der Komplette Leidensweg...
Alte Threads zum Thema:
http://www.delphipraxis.net/133703-d...h-klicken.html
http://www.delphipraxis.net/143253-w...icherheit.html
Wer das Programm kurz ausporbieren will:
https://hydra.erlangen.ccc.de/~schub...0124_Setup.exe
Den Einstellungs-Dialog beim ersten Start einfach bestätigen.
Ist die Version ohne Freezes, Restlos-Uninstaller ist auch dabei