【问题标题】:Windows Service with running some Process运行某些进程的 Windows 服务
【发布时间】:2015-12-24 12:05:40
【问题描述】:

我在使用 Windows 服务时遇到问题。我想以他的水平在给定的情况下运行程序。每分钟检查一个特定值,如果该值采用“真相”,对我来说程序启动。只是目前这不起作用...

问题是调试代码正确执行时,会显示我的窗口,但是服务运行正常什么都没有发生...

关于这一切的电影链接: https://youtu.be/GPv5dn92BGg

【问题讨论】:

  • 您是否将服务配置为允许桌面交互?从具有桌面交互的服务运行进程我不是常见的做法,仅支持向后兼容。
  • 嗯,可能不是,我什至不知道你需要做这样的事情。我希望 ws 检查数据库中的每个 X 时间数据项,并在必要时运行带有消息的 winform(当前运行只是一个示例)
  • 我标记了这个选项,但它没有帮助screenshooter.net/102681996/daxmkbc

标签: winforms windows-services process.start


【解决方案1】:

您需要跳过几个环节才能从服务启动交互式应用程序。首先,需要明确允许服务与桌面交互。然后该服务需要指定正确的 WindowStation 以显示它。

将您的子应用程序设置为计划任务可能更简单,因为它们可以为您与桌面交互

【讨论】:

  • 嗯,你可以指导我吗?? :) 我还没有使用任务。在我最近工作的网站上,只是了解它们,我想创建这样的东西,程序将在后台运行并检查每一分钟给定的值,如果你运行另一个应用程序并显示消息,我使用了这个但是这不起作用screenshooter.net/102681996/wdghxnr线程
  • 我尝试像这里一样使用“任务”,通常screenshooter.net/102681996/ewvvgfl 没有发生任何事情,但在调试中没问题..
  • 我标记了这个选项,但它没有帮助screenshooter.net/102681996/daxmkbc
  • 郑重声明,“允许服务与桌面交互”选项仅允许服务使用对交互服务的旧支持,默认情况下禁用(即使启用也不方便)。相反,您可以使用 CreateProcessAsUser(或其他 CreateProcessXxx 函数之一)将交互式应用程序直接启动到用户会话中。有许多现有的问题涵盖了这一点。但我同意这不是解决 OPs 问题的最佳方法。
  • (我认为您甚至不需要使用计划任务。一个简单的后台应用程序,配置为在用户登录时自动启动,应该是完美的。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多