1 ja (häng dich einfach mal an TApplicationEvent.OnMessage und schau nach was kommt, oder such im forum danach)
2 natürlich nein (Windows versendet so schon zuviele Messages ... wäre ja Schlimm, wenn es sinnlos auch noch bei jeder Kleinichkeit sowas machen würde, nur in der Hoffnung jemand "könnte" es gebrauchen)
Delphi-Quellcode:
Timer.Intervall := Round((1 - TimeOf(Now)) * MSecsPerDay);
Timer.Enabled := True;
...
OnTimer:
Timer.Enabled := False; // und/oder Intervall setzen
= Mitternacht
Oder wenn man eh einen Timer im Programm hat, der irgendwas regelmäig macht, dann dort mit rein