2011-05-08 46 views
2

我目前面临的问题是,我需要每隔一小时执行一个批处理文件,任何人都可以提供一个代码spinet,每小时启动一个指定的文件,例如myfile.bat?C++代码每小时执行一个文件

+0

不幸的是,我没有可使用的Task Scheduler服务,所以我不能设置任务 – Daniel 2011-05-08 21:08:23

+0

我爱用[A尖晶石(HTTP结合:// en.wikipedia.org/wiki/File:Spinet-q50-2822x829.jpg)[执行文件](http://petruccilibrary.org/wiki/Lessons_for_the_Harpsichord_or_Spinet_(Loeillet,_John))有时 – sehe 2011-05-08 21:43:42

回答

2

根据您的系统环境,您可以使用cronjob轻松完成此操作。

随着/一个cronjob你可以安排它的任何分钟/小时/天等..

您可以提供的cronjob执行的功能,你可以将一个C++ EXE运行的服务的路径你需要。

例如:我有一个cronjob每小时计划一个php函数(这是一个临时的解决方法,通常我只是运行php脚本)发送用户预先模拟邮件。

0 * * * *卷曲http://mydomain.com/my_email_scheduler.php

的5个位数前述我的函数调用确定计划时间

[分钟] [小时] [日] [月] [星期]命令行以诚待执行

Cron job guide

编辑::刚才注意到您的评论,你没有可用的任务调度..然后,我会建议睡每隔一小时一个线程并在执行功能醒来。

+0

拍摄 - 只是看到你的评论,你没有调度程序可用...你可以睡一个线程唤醒每个小时执行一个函数? – Atticus 2011-05-08 21:14:44

+0

你应该看过我的回答;-) – 2011-05-08 21:15:30

+0

这是 - 没有看到用户添加他的评论,直到我的页面刷新.. – Atticus 2011-05-08 21:16:09

4

这不是你用永远在进程解决的问题。您应该为此使用计划任务。它为您解决了所有问题。

如果您绝对必须在您自己的代码中执行此操作,最简单的解决方案是Sleep()函数。但我强烈建议不要这种方法。

+0

不幸的是,我没有这个服务可供使用 – Daniel 2011-05-08 21:07:04

+0

你是什么意思?当然,每台Windows机器都运行计划任务。 – 2011-05-08 21:08:47

+0

为了安全,环境已经进行了大量的调整 – Daniel 2011-05-08 21:09:16

0

使用睡眠的替代方法是使用timers 这确实意味着你需要通过创建GUI的过程(如果它听起来那么简单,可能根本不值得) < - 我的不好。这样做的好处之一是,你可以确保每半小时执行一次,而不是每半小时+执行一次。

+1

不,我不认为您需要为了使用定时器而创建GUI。 – 2011-05-08 21:32:09

+0

@Andreas Rejbrand,所以你不:)我一直使用WM_TIMER消息而不是回调函数,我完全忘记了能够设置回调。我现在要纠正它。 – Matt 2011-05-08 21:34:18

+0

@Mat你甚至不需要回调函数,如果你愿意,你可以创建不可见的窗口。这在很多地方都是非常有用的技巧 - 它允许非GUI应用程序执行需要窗口句柄的事情。 – 2011-05-08 21:41:05

相关问题