I am replacing a program I wrote several years ago. I start my program when the computer boots. It then waits until 3:00 in the morning to launch an other application that retrives text data from our cash registers with the prior days results. I used a timer to check the system time every 30 seconds and check it for the 3:00 am time. When the time is met, I launch the other application and use the WaitForSingle Process to let me know when it is finished and I can process the text files. I know I can now use the Process object without messing with the API. My question is about the timer that waits until 3:00 am. I have read on this forum that watching the system is not the best. Can you think of a more elegant way to wait to launch? My old program had a drop down list that would allow the user to set the launch time after the original form is displayed.