Den Stundenwechsel kann man einfach so erfassen:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var aHour,aMin,aSec,aMSec: Word;
begin
repeat
Label1.Caption := TimeToStr(Time);
DecodeTime(now,aHour,aMin,aSec,aMSec);
sleep(1000);
until (aHour
in [6..19])
and (aMin = 0);
Winapi.Windows.Beep(1500,200);
// ----ab hier ACTION !
end;