home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_C
/
CENVIW9.ZIP
/
RUNTIME.CMM
< prev
next >
Wrap
Text File
|
1994-03-08
|
2KB
|
60 lines
/********************************************************
*** RunTime.cmm - Execute commands at supplied time. ***
*** ver.1 This is the start of a scheduler. ***
********************************************************/
#include <Message.lib>
// define TIME_CHECK_DELAY for how long to delay in between each time
// checking if the RunTime has come yet. This time is in milliseconds so
// 1000 is 1 second. This time is not exact so setting to 60000 (60 seconds)
// might miss an entire minute. Less then 100 would probably take up more
// processor time than you want, but still not very much
#define TIME_CHECK_DELAY 5000 // check every 5 seconds
// Get time of day to run command
do {
GetCurrentTime(hour,minute,second);
printf("\nTime is %02d:%02d",hour,minute);
printf("\nEnter time to run command (0:00 -> 23:59) ");
TimeString = gets();
} while ( 2 != sscanf(TimeString,"%d:%d",RunHour,RunMinute)
|| RunHour < 0 || 23 < RunHour
|| RunMinute < 0 || 59 < RunMinute );
// Get Command to run
printf("\nCommand to run: ");
RunCommand = gets();
// Show message for what will happen
ScreenClear();
printf("Command: %s\n",RunCommand);
printf("Scheduled time: %02d:%02d:00\n",RunHour,RunMinute);
// Minimize this window so it's not in the way for so long
PostMessage(ScreenHandle(),WM_SYSCOMMAND,SC_MINIMIZE,0);
// Wait until the specified time
DisplayedSecond = -1; // force current time to print
do {
GetCurrentTime(CurrentHour,CurrentMinute,CurrentSecond);
if ( CurrentSecond != DisplayedSecond )
printf("\rCurrent Time: %02d:%02d:%02d",
CurrentHour,CurrentMinute,DisplayedSecond=CurrentSecond);
suspend(TIME_CHECK_DELAY);
} while ( CurrentHour != RunHour || CurrentMinute != RunMinute );
printf("\n");
// Execute the command
spawn(P_NOWAIT,RunCommand);
GetCurrentTime(hour,minute,second)
{
now = localtime(time());
hour = now.tm_hour;
minute = now.tm_min;
second = now.tm_sec;
}