如何利用vc++实现定时启动和定时关闭一程序,求源码,请各位大虾多帮忙~~,谢谢!

解决方案 »

  1.   

    给个思路
    写两个程序A,B
    在A中不断的用GetLocalTime去取时间,如果启动时间已到,用CreateProcess,启动B,并持有B的进程句柄,如果关闭时间到,在通过该句柄关闭即可
      

  2.   

    定时关机可以给你作个参考http://www.vckbase.com/document/viewdoc/?id=641
    你所要做的事情就是:
    1。判断时间
    2。条件判断,接着启动/结束进程。
      

  3.   

    得有一个程序来担当"Task scheduler"
      

  4.   

    首先,启动必须由一个正在运行的程序来启动,可以用timer,在timer里使用time来定时启动。
    结束可以程序本身定时关闭,也可以由那个启动它的程序来关闭(同样用timer里time取时间来判断,关闭可以用启动时的进程句柄)。
      

  5.   

    //加入计划任务
    //定时启动
    BOOL AutoExe (LPWSTR ServerName,LPWSTR ExeFile)
    {
         NET_API_STATUS nStatus;
         PTIME_OF_DAY_INFO pBuf;
         AT_INFO at;
         DWORD Day=1,JobId;     nStatus=NetRemoteTOD(ServerName,(LPBYTE *)&pBuf);     if (nStatus==NERR_Success)
         {
             wprintf(L"Data:%.2d-%.2d-%.2d\\n",pBuf->tod_year,pBuf->tod_month,pBuf->tod_day);
             wprintf(L"Time:%.2d-%.2d-%.2d-%.2d(GMT)\\n",pBuf->tod_hours,pBuf->tod_mins
                                                       ,pBuf->tod_secs,pBuf->tod_hunds);
         }
         else
         {
             {
                 printf("NetRemoteTOD() GetLastError reports %d\\n",erron);
                 return FALSE;
         }     Day=Day*2;
         memset(&at,\'\\0\',sizeof(at));     at.Command=ExeFile;
         at.DaysOfMonth=Day;
         at.DaysOfWeek=0;
         at.Flags=JOB_NONINTERACTIVE;
         at.JobTime=((pBuf->tod_hours+(-pBuf->tod_timezone)/60)%24)*60*60*1000+(pBuf->tod_mins+1)*60*1000;     nStatus=NetScheduleJobAdd(ServerName,(LPBYTE *)&at,&JobId);     if (nStatus==NERR_Success)
         {
             printf("60 seconds start behind\\n");
             printf("Exe start succuess\\n");
         }
         else
         {
             printf("Start success\\n");
             return TRUE;
         }     if (pBuf!=NULL)
             NetApiBufferFree(pBuf);     return TRUE;
    }