我的程序试图在每天的半夜12点执行一个操作,在vc中有没有什么函数能完成这个功能。
       高手帮忙!!

解决方案 »

  1.   

    命令台下的at指令
    AT 命令安排在特定日期和时间运行命令和程序。
    要使用 AT 命令,计划服务必须已在运行中。AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
    AT [\\computername] time [/INTERACTIVE]
        [ /EVERY:date[,...] | /NEXT:date[,...]] "command"\\computername     指定远程计算机。 如果省略这个参数,
                                   会计划在本地计算机上运行命令。
    id                            指定给已计划命令的识别号。
    /delete                    删除某个已计划的命令。如果省略 id,
                                   计算机上所有已计划的命令都会被删除。
    /yes                        不需要进一步确认时,跟删除所有作业
                                   的命令一起使用。
    time                        指定运行命令的时间。
    /interactive             允许作业在运行时,与当时登录的用户
                                   桌面进行交互。
    /every:date[,...]       每个月或每个星期在指定的日期运行命令。
                                   如果省略日期,则默认为在每月的本日运行。
    /next:date[,...]         指定在下一个指定日期(如,下周四)运行命令。
                                   如果省略日期,则默认为在每月的本日运行。
    "command"            准备运行的 Windows NT 命令或批处理程序。
      

  2.   

    用代码的化,你必须让它常驻内存,并判断指定时间
    使用ShellExecute()
      

  3.   

    谢谢回答,我想用代码实现,我的意思是在程序里面有一个函数一到晚上12点就执行。
        能详细说明一下shellexecute是怎么用的吗 ?
          不胜感激阿!!!
      

  4.   

    最好是不要用timer实现!
        隔一段时间就去判断,我感觉有点忙等待了
      

  5.   

    用独立线程计时
    然后启动程序,用CreateProcess
    一共有十个参数,大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.以下是简单的 Example: 
    STARTUPINFO stinfo; //启动窗口的信息 
    PROCESSINFO procinfo; //进程的信息 
    CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_ 
    CLASS,NULL,NULL, &stinfo,&procinfo); 
      

  6.   

    标点错了
    CreateProcess(NULL,_T("notepad.exe"),NULL,NULL,FALSE, NORMAL_PRIORITY_ 
    CLASS,NULL,NULL, &stinfo,&procinfo); 
      

  7.   

    谢谢crystal,不过我想要的是执行程序的某个函数,那个程序是作为服务器程序一直
    开着的,到了一定时间让它做一个数据采集的动作。