我在写一个程序,需要每天夜里12点钟准时备份数据库,windows有没有这样的api:到了某一时刻通知我的应用程序?

解决方案 »

  1.   

    你可以做一个程序,一直运行,自己判断时间到午夜12点就备份数据库!
    不过单从备份数据库的角度来说
    数据库本身就可以
    定时执行一条SQL语句,
    你可以通过这条语句备份数据库
    我说的是SQL server
      

  2.   

    用定时器
    void CTest6Dlg::OnTimer(UINT nIDEvent) 
    { // TODO: Add your message handler code here and/or call default SYSTEMTIME SystemTime;
    GetLocalTime(&SystemTime);
    WORD wYear = SystemTime.wYear;
    WORD wMonth = SystemTime.wMonth;
    WORD wDay = SystemTime.wDay;
    WORD wHour = SystemTime.wHour;
    WORD wMin = SystemTime.wMinute;
    WORD wSec = SystemTime.wSecond;// CString str;
    // str.Format("%d/%d/%d/ %d:%d:%d", wYear,wMonth,wDay,wHour,wMin,wSec);
             
              //根据你设定的时间判断
            
    CDialog::OnTimer(nIDEvent);
    }
      

  3.   

    没有这样的消息,要自己实现。小三的OnTimer算法比较难理解,我认为不太好。你可以自己写一个线程,用GetLocalTime轮询时间,到了12点就向主线程发一个消息,相当于一个简单的报时器。
      

  4.   

    呵呵,小三做的可以。不过在定时器里 void CMyView::OnTimer(UINT nIDEvent)
    用CTime::GetCurrentTime()这个函数或许好一点。CTime time=CTime::GetCurrentTime();
    CString str=time.Format("%H:%M:%S");其中%H记录的是小时,可以从str中读取出来
      

  5.   

    同意,在OnTimer函数中获取当前时间,并且和目的时间比较,这样就可以判断了。
      

  6.   

    用定时器内核对象
    相关的函数为
    CreateWaitableTimer
    SetWaitableTimer
    在线程中等等他,就像等Event事件对象
    可以设置等待的时间,到时会通知线程运行
    精确,实现,
      

  7.   

    TO:aiirii(ari-爱的眼睛)
    三星级的果然高明,计划任务能编程实现吗?
    关注~