Windows服务启动winforms应用程序

本文关键字:应用程序 winforms 启动 服务 Windows | 更新日期: 2023-09-27 18:15:38

我有这个问题,我写了一个WinForms应用程序,我已经使用了一段时间没有问题。接下来,我刚刚写了一个windows服务来自动启动/停止我的winforms应用程序。但是现在窗口没有显示,在任务管理器中它正在运行。此外,为了测试我的服务,首先它是一个控制台应用程序,所以console . writeline()对于显示数据,状态,变量等很有用,一旦它成为一个服务,就不再是控制台了。那么,我错过什么了吗?

我需要的是启动/停止winform应用程序的服务。这是一种监控。因此,如果winform应用程序未运行,则创建一个进程并启动它。但如果是午夜,那么应用程序不应该运行,然后服务找到该进程并关闭它。我不想把winform应用变成一个服务,或者把服务变成一个winform应用。

我首先想到的只是把我的winforms应用程序的快捷方式在"启动"文件夹启动它,但我需要关闭它,和/或重新启动它。这就是我写这个服务的原因。

谢谢!

Windows服务启动winforms应用程序

在Windows Vista中,服务不能直接与桌面交互,这意味着它不能产生一个可见的形式。

即使您将其设置为尝试这样做,您将得到的最好结果是一个uac风格的提示,指示用户您的程序希望显示的内容。这就是我们试图遵循以下原则时的结果:Windows服务如何执行GUI应用程序?

我们有一个Windows应用程序,它绝对需要与桌面交互,它最初是作为Windows服务编写的。为了绕过这些限制,我们被迫将其写成一个WinForms应用程序,并将主窗体的Visible属性设置为"false"。当我们需要显示它时,我们将其设置为"true"。这是一个hack,我们知道,但我们从来没有找到一个更好的解决方案。

这篇文章确实提供了替代方案。它们对我们没用,但也许你的情况不同。http://msdn.microsoft.com/en-us/library/windows/desktop/ms683502 (v = vs.85) . aspx