当运行一个程序,例如记事本,作为服务时,您是否在视觉上看不到该程序? 我看到记事本在任务管理器中运行,但我实际上看不到它的实例正在运行。这是为什么?
答案 0 :(得分:1)
服务用作后台应用程序,而不是前台应用程序。通常,它们在没有直接用户输入或通过IPC的用户输入的情况下运行(通常为多个应用程序提供集中点以进行通信)。
将任何应用程序设置为仅作为服务运行并不常见。作为服务运行的应用程序通常是专门设计的,因为它们执行某些任务,并且可能希望始终运行以执行此类任务。
答案 1 :(得分:0)
应用程序实际上需要支持作为服务运行 - 通常通过识别“\ service”命令行键来完成。某些应用程序会识别出没有“\ service”键,并且不执行任何操作或显示警告。
当应用程序“作为服务”启动时,通常意味着它必须在后台连续工作,并且当前没有用户登录。这就是为什么它不应该指望任何用户输入,因此不显示窗口。
答案 2 :(得分:0)
添加@Quintin Robinson的答案,他们没有出现在任务管理器上的原因是因为他们(通常)是从一个伞形流程运行的。
为了给您提供更好的图片,请下载并运行Microsoft's Process Explorer,然后将鼠标悬停在正在运行的“svchost.exe”进程之一上。
您应该会看到一些正在其下运行的服务。
答案 3 :(得分:0)
Windows中的所有用户互动都通过Windowstations进行。默认情况下,Windows服务与非交互式工作站“交互”。它不是您连接的电台,因此您看不到任何输出。
您可以通过更改服务属性并启用“允许服务与桌面交互”来更改此行为。
您可以阅读有关此here的更多信息。
答案 4 :(得分:0)
默认情况下,作为服务运行的应用程序(或由作为服务运行的其他应用程序启动的应用程序)运行在无法与您看到的桌面交互的单独桌面上。
如果您希望能够与服务进行交互,则可以相应地设置服务属性。
话虽这么说,你用记事本看到的几乎肯定与服务无关。