C#服务集成

时间:2012-11-07 22:21:35

标签: c# windows-services

当拔下网络电缆时,需要构建一个显示消息并锁定计算机的服务(只需使用Windows窗体)(因此,如果没有网络,它们就无法继续 - 它适用于学生不断拔掉电缆的学校绕过某些街区)

我看到你可以通过服务与桌面交互,如果你允许的话,我只是想知道即使没有用户登录也会显示Windows窗体吗?

由于此程序需要在进行身份验证时将其删除,然后拔掉它。

干杯 理查德

3 个答案:

答案 0 :(得分:0)

Windows上有几个桌面,一个用于Windows服务,一个用于登录,一个用于用户等。有关详细信息,请参阅this link

我认为您可以做的是创建一个新桌面,然后在网络连接丢失时切换到该桌面。请参阅this question作为开始。但是,由于安全性限制,这将不适用于Windows服务,因为它是一个不同的会话。但是,您可以做的(我认为)是,只要用户登录并让该应用程序与Windows服务通信,就可以使应用程序自动启动。该应用程序可以进行桌面切换。

然后,该服务将管理网络并通知应用程序。如果应用程序未在固定超时内启动或被杀死,我认为您应该能够使用the WTS-api注销用户。

答案 1 :(得分:0)

从Vista开始,Windows服务无法与任何交互式桌面交互。这意味着您无法从Windows服务中提出您的建议。您需要一个标准的桌面应用程序。

答案 2 :(得分:0)

您可以创建一个简单的应用程序,显示任何有机会取消的启动画面,然后锁定计算机(或者您希望它工作)不是作为Windows服务,而是作为桌面应用程序。每当网络断开连接事件触发时,都可以触发该应用程序启动。

有关如何设置计划任务以在网络断开连接时启动应用程序的问题,请参阅this post

有关如何以编程方式锁定计算机的信息,请参阅this post