如何在用户登录之前运行Windows应用程序

本文关键字:运行 Windows 应用程序 登录 用户 | 更新日期: 2023-09-27 18:03:17

可能重复:
在我登录到Windows之前,如何启动WPF应用程序?

我用C#编写了一个应用程序。我想在登录到Windows操作系统之前运行我的应用程序(在Windows操作系统预加载之后(。我该怎么做?

如何在用户登录之前运行Windows应用程序

只有方法是创建Windows服务而不是应用程序。由于服务是而不是用户模式的应用程序,因此即使没有用户登录,它们也可以运行。

然而,这还有其他注意事项。大多数开发人员只学习了上面的内容,并认为他们需要编写一个Windows服务。这是不正确的:事实上,你很少真正需要写其中一个。如上所述,它们是而不是用户模式应用程序,因此不能显示任何类型的用户界面。它们被设计为在后台运行,并且用于用户不需要以任何方式与它们交互的情况,而[很少]停止和启动它们。

如果您已经有一个带有用户界面的常规应用程序,则创建Windows服务不是您的选择。您的应用程序将无法连接到服务,您将返回时询问六个问题,这些问题涉及看似无法解释的行为、系统崩溃以及无法执行各种操作。服务不是应用程序的替代品:它是一种完全不同的产品,需要完全不同的设计方法。

那么你有什么选择呢?基本上什么都没有。Windows是一个多用户操作系统。如果没有用户登录,就无法运行用户模式应用程序。你能做的最好的事情是将你的应用程序添加到所有用户帐户共享的"启动"文件夹中,然后配置机器在启动时自动登录特定用户。这样,计算机就永远不会在没有用户登录的情况下运行,因此您的应用程序也不会运行。

为此,您需要在计算机上配置组策略,这将要求您对这些策略具有管理访问权限,并且不会在您不拥有的计算机(例如属于客户的计算机(上工作。这实际上是一件好事,因为对于一个通用的应用程序来说,这是一个非常糟糕的设计。

在我们为系统管理员设计的姊妹网站Server Fault上询问有关设置组策略的更多问题。

登录前必须运行服务。

它需要是一个Windows服务,并且该服务需要安装/配置为"自动启动">