【问题标题】:Starting a console application from a Windows Service/Can it be done/How can it be done?从 Windows 服务启动控制台应用程序/可以完成/如何完成?
【发布时间】:2019-04-08 19:55:47
【问题描述】:

我正在做一个项目,需要指导和示例(如果可能)。我有一个不与用户交互的控制台应用程序。控制台应用程序读取一个 excel 文件并将一个值打印到运行时创建的文本文件中。我希望在创建或更新目录中的文件时运行控制台应用程序。 我的计划: 我的计划是创建一个 Windows 服务,该服务使用 FileSystemWatcher 类来监视目录并在文件系统监视程序收到更改通知时运行控制台应用程序 exe。 任何人都有我可以用来完成项目的有用链接、建议或示例。 谢谢!

【问题讨论】:

  • 您可以简单地创建一个新进程并运行控制台应用程序。就像你在 WinForms 或控制台应用程序中做的一样

标签: c# windows-services console-application


【解决方案1】:

默认情况下,Windows 服务无法与 UI 交互,因此您无法启动可见的控制台窗口。从 Vista 开始,有一个选项允许与 UI 交互(请参阅“允许服务与桌面交互”)。

不过,我认为这个问题已经在this thread 中得到了解答。

【讨论】:

  • 你的第一句话让我很困惑。你可以有一个可见的控制台窗口/应用程序在不与之交互的情况下工作。它只会做它的工作并在完成后关闭(除非你有代码告诉它保持打开/等待某种课程的输入)。我不确定您认为该服务需要与什么 UI 进行交互。
  • @BrootsWaymb:如果我没记错的话,默认情况下您无法启动可见的控制台窗口,因为它仍然是 UI,即使它不需要任何输入。如果您需要一个可见的窗口,您可能需要允许服务与桌面交互或运行一个应用程序,该应用程序通过命名管道或其他方式与服务通信。但我认为这有点离题,因为我认为线程启动器不需要可见窗口。我只是想提一下,以防万一..
猜你喜欢
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 2023-03-23
  • 2010-09-07
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
相关资源
最近更新 更多