如何让delphi应用程序(正在运行)在特定时间/日期执行某些操作

Sam*_*amH 11 delphi

我的应用程序在未使用时位于系统托盘中.

用户可以配置在特定时间表发生的事件.例如,他们可能会在下午5点或每个星期三下午3点或每个月的16日上午10点执行任务.

假设我的delphi程序一直在运行,它在启动时启动,这是delphi支持触发这些调度事件的最佳方式.

显然,TTimer可用于根据已用时间安排事件,但它们似乎不适合此问题.

干杯

Run*_*ner 17

您可以使用我的CRON兼容Cromis调度程序.它甚至支持一些cron没有的东西.例如,基于时间间隔的事件和从/到时间帧.我在很多软件中使用它并证明它本身非常有用.它是免费的,非常轻巧,适用于线程并经过生产测试.如果您需要任何进一步的帮助,请发邮件给我

其他方式是:

  1. 如已建议使用Windows调度API.但这可能会在OS-es之间发生变化.
  2. 使用具有调度程序单元的JCL(JVCL中的组件),但我发现很难直接使用代码.这就是我写自己的原因.


Leo*_*Leo 8

我会使用Microsoft Task Scheduler API:

http://msdn.microsoft.com/en-us/library/aa383614(VS.85).aspx

如果您不想做"肮脏的工作",可以使用Delphi Wrappers,但我不知道是否有免费的.你可以看看

如果您不想使用Microsoft Scheduler,可以使用CronJob组件,例如http://www.appcontrols.com/components.html.它也是共享软件,但很容易实现(只是一个onAlert事件).

  • 个人而言,我会将我的应用程序分成两个可执行文件:一个只执行用户可以定义的任务(这个应用程序由调度程序调用)和我的用户可以通过其添加新任务的一个,这将是一个OP经常在他的托盘中运行.迈克尔斯的建议也是一个好主意,但实施起来太复杂了:-) (2认同)
  • @Michael:这个解决方案看起来真的很复杂,我认为这是一个肯定的迹象,即Windows任务计划程序只是错误的方法. (2认同)