gpt4 book ai didi

.net - dot net 中 windows 服务的 UI

转载 作者:行者123 更新时间:2023-12-03 23:24:30 25 4
gpt4 key购买 nike

我在 dot net 中创建了一个 Windows 服务,以向我的 friend 发送自动电子邮件。一切正常。现在我有一个要求,比如显示一个弹出窗口,上面写着邮件已经发送或类似的东西。但是我需要一些想法来实现该逻辑。我认为 Windows 服务不可能有 UI。所以我想创建另一个 Windows 应用程序来显示弹出消息,并在邮件发送后从 Windows 服务调用它。这只是想法,不确定这种方法是否正确。请指导我。

谢谢。

最佳答案

Windows 服务不应该有任何 GUI 没有限制。 Windows 服务可以有 GUI。但如果有,它会出现在服务 0 中。在 Vista 之前的早期 Windows 版本中是可能的。让我们对此进行详细讨论。
每当用户登录到 Windows 时,就会创建一个登录 session 。每个 session 都有一个 session ID。所有 Windows 服务都将在 session 0 中运行。
在 session 0 中,用户可以查看在那里运行的任何程序的图形元素并与之交互,包括由早期版本(如 Windows NT、2000、XP 和 Server 2003)中的 Windows 服务创建的图形元素。
后来出于安全考虑,微软隔离了Session 0。影响是服务无法显示其GUI。这是其中一种情况。
考虑一下,服务尝试在 session 0 中创建用户界面 (UI),例如对话框。因为由于服务 0 的隔离,用户没有在 session 0 中运行,所以他或她永远不会看到 UI,因此无法提供服务正在寻找的输入。该服务似乎停止运行,因为它正在等待没有发生的用户响应。
由于这种隔离,服务无法通过 Windows 消息与应用程序通信,反之亦然。我们使用 RPC、交互式服务检测服务 (ISDS) 和 IPC 来进行服务和应用程序之间的通信。

关于.net - dot net 中 windows 服务的 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com