在系统启动时启动应用程序而无需登录

Dan*_*iel 6 windows scheduled-tasks windows-applications server

我们有一个新的服务器正在运行,我们有一些新的程序在执行导入例程。到目前为止,还不错。。。但是有一个程序放在了autostart文件夹中。因此它直到管理员登录才运行,如果我们注销则停止

我想将其放在一个单独的会话中,以便在启动时仅通过任务计划程序将其启动即可在没有任何交互的情况下工作。这是正确的方法吗?如果我以后登录然后注销,是否安全?

非常感谢!

编辑:如果应用程序正在运行,则在任务栏中显示为符号,可以对此进行配置。如果我进行更改,我必须对此有所了解吗?

编辑:这不是我的应用程序,我不能将其重写为服务。

Dan*_*iel 9

我通过在启动时使用任务调度程序成功添加了应用程序。登录和注销不会退出应用程序,但不会显示任何符号。请在我的附带问题中添加详细信息,我会将您的答案标记为已接受的答案。

编辑:最终使用了这个。如果我必须配置,我会在任务管理器中停止应用程序并通过链接重新启动它。之后我退出应用程序并通过任务计划程序手动启动重新启动它。


Pab*_*ruz 6

您需要将程序作为 Windows 服务运行。一种方法是使用该sc.exe程序:

> sc create <new_service_name> binPath= "c:\myapp\myapp.exe"
Run Code Online (Sandbox Code Playgroud)

你可以在这里读到它。


Lua*_*aan 5

您需要将您的应用程序一分为二。

要允许它在没有用户会话的情况下运行,您需要一个 Windows 服务。那应该处理所有背景的东西。然后,您可以注册该服务并将其设置为在系统启动时启动。

为了让它有一个 UI,并显示在通知区域,你需要一个 Windows 应用程序。这将像往常一样处于自动启动状态,并将与服务通信 - 例如,通过命名管道。

虽然仍然(几乎)可以在没有用户会话的情况下运行 UI 应用程序,但它只是为了向后兼容而维护,并且已经显示出很多问题。将来它可能会被完全删除,因为它违反了很多合同。不要依赖这样的黑客。