runtime.cmm
来自「C 语言开发HNT格式数据库系统」· CMM 代码 · 共 59 行
CMM
59 行
/*******************************************************
*** RunTime.cmm - Execute commands at supplied time ***
*******************************************************/
#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;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?