[問題] 請問要排程的程式寫法
看板C_and_CPP (C/C++)作者donkeychen (Bad_To_The_Bone)時間13年前 (2013/02/07 11:22)推噓1(1推 0噓 14→)留言15則, 5人參與討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
在WINDOWS內想用AT/schtasks 建立排程 但是因為使用者與權限的問題
想說把排程寫在程式本身
目前想到的做法是寫一個thread 裡面一個while(true)
check目前time是否在要排程的時段內
是的話才去呼叫我要跑的外部程式
然後把這程式放在'啟動'裡面跑
不知道有沒有可以用event而非用loop檢查的可用呢
謝謝
程式碼(Code):(請善用置底文網頁, 記得排版)
#include "time.h"
checktimethread()
{
while (1)
{
if(isInTime(x,x,x,x);
call xxxx
}
}
bool isInTime(unsigned int starthr, unsigned int startmin,
unsigned int endhr, unsigned int endmin)
{
time_t rawtime;
struct tm *timeinfo;
time(&rawtime);
timeinfo = localtime(&rawtime);
int tm_min = timeinfo->tm_min;
int tm_hour = timeinfo->tm_hour;
int now_inmin = tm_hour * 60 + tm_min;
int start_inmin = starthr * 60 + startmin;
int end_inmin = endhr * 60 + endmin;
//start_inmin < now_inmin < end_inmin => run
if (start_inmin < end_inmin) //not overnight
return ((now_inmin >= start_inmin) && (now_inmin < end_inmin));
// 22:00 23 24 0 1 2 ...7 < 7:00
//start_inmin < now_inmin < 0:00 < now_inmin < end_inmin => run
else//(start_inmin >= end_inmin) //overnight
return ((now_inmin >= start_inmin) || (now_inmin < end_inmin));
}
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.72.248.50
→
02/08 02:44, , 1F
02/08 02:44, 1F
→
02/08 11:12, , 2F
02/08 11:12, 2F
→
02/08 11:44, , 3F
02/08 11:44, 3F
→
02/08 16:05, , 4F
02/08 16:05, 4F
→
02/08 16:05, , 5F
02/08 16:05, 5F
→
02/08 16:07, , 6F
02/08 16:07, 6F
→
02/08 16:16, , 7F
02/08 16:16, 7F
推
02/08 16:43, , 8F
02/08 16:43, 8F
→
02/09 23:13, , 9F
02/09 23:13, 9F
→
02/09 23:13, , 10F
02/09 23:13, 10F
→
02/09 23:15, , 11F
02/09 23:15, 11F
→
02/09 23:15, , 12F
02/09 23:15, 12F
→
02/09 23:16, , 13F
02/09 23:16, 13F
→
02/09 23:25, , 14F
02/09 23:25, 14F
→
02/09 23:26, , 15F
02/09 23:26, 15F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章