安排.exe作为任务运行,但也允许用户打开表单

时间:2016-04-12 17:03:58

标签: .net wcf windows-services

我正在开发一个应用程序,它将检查某些文件是否已被修改,并发送一封Outlook电子邮件通知用户所述更改。我们希望将任务安排在每24小时运行一次。我在这里使用Windows任务调度程序了解如何执行此操作:http://windows.microsoft.com/en-in/windows/schedule-task#1TC=windows-7

我还研究过使用Windows service,但是用户希望能够指定某些文件夹来检查和修改报告发送到的电子邮件地址,我不知道该怎么做在服务中。

我创建了一个表单,用于在应用程序的用户范围内存储文件路径和电子邮件地址。但是,如果我安排任务,它将打开表单。我希望表单只在用户提示时打开(通过单击.exe。)。应用程序将始终(每天24小时)根据最新设置运行(在后台运行)。

我可以创建表单应用程序并让服务调用用户设置吗?我是新手,我不知道要去哪个方向。

我已经研究过这些:

Best way to run scheduled tasks

how to use windows service in windows form application

WCF using windows service

一些澄清

我需要应用程序每24小时在后台运行(检查文件+发送电子邮件报告)而不打开任何表格。

我需要能够手动打开表单以随时更新设置。

2 个答案:

答案 0 :(得分:0)

看起来你可以隐藏它

https://www.calazan.com/windows-tip-run-applications-in-the-background-using-task-scheduler/

enter image description here

过去,我还使用了一些可以安排任何应用程序在后台作为服务运行的第三方应用程序

答案 1 :(得分:0)

  1. 创建控制台应用程序
  2. 在app.config中定义自定义配置部分 https://msdn.microsoft.com/en-us/library/2tw134k3.aspx

  3. 要观看的文件夹可以存储在不同的配置文件中以便于维护

  4. 为用户选择的文件夹实现了FileSystemWatcher,如此处所述 https://msdn.microsoft.com/en-us/library/2tw134k3.aspx

  5. 映射所选文件夹监视并在计算机上创建将累积所有文件夹更改的消息队列

  6. 现在编写一个控制台应用程序来读取消息队列并为所有受影响的用户生成格式化的电子邮件

  7. 使用Windows任务计划程序实用程序

  8. 计划控制台应用程序