I'd suggest to create task for windows scheduler, which is able to run your application at any time, instead of checking the time in your application.
For further details, please see:
Schtasks: Management Services[
^]
So, change your app to run
report_data
subroutine and when the report is finished, the application finishes itself.