加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 通过网络登录从Windows服务创建GUI

发布时间:2020-12-16 01:29:53 所属栏目:百科 来源:网络整理
导读:我一直在阅读很多关于从 Windows服务执行GUI应用程序的内容.当服务以SYSTEM用户身份运行时(我使用的是Windows XP),“允许服务与桌面交互”复选框对我有用. 现在我需要服务作为域(在网络中)中定义的用户运行.一切正常(即使没有用户登录到机器),但未显示GUI(即
我一直在阅读很多关于从 Windows服务执行GUI应用程序的内容.当服务以SYSTEM用户身份运行时(我使用的是Windows XP),“允许服务与桌面交互”复选框对我有用.
现在我需要服务作为域(在网络中)中定义的用户运行.一切正常(即使没有用户登录到机器),但未显示GUI(即使登录了相同的网络用户!).
我知道GUI正在运行,只是它们被隐藏了.这是为什么?有没有办法在用户登录时显示它们(比如由SYSTEM用户创建并允许与桌面交互!)?
如果是这样,如果登录的用户与运行该服务的用户不同,它会起作用吗?

编辑:

@casperOne:我看到了你的解决方案,人们(甚至你)一直在发帖.在我的情况下,我确信我在一个安全的环境中运行,一次只有一个用户将登录到一台机器.简单地取消隐藏GUI是不是可以做任何事情?为什么这适用于用户SYSTEM允许与桌面交互而不与其他用户交互?

解决方法

您的方法完全错误,在Vista上部署时无法正常工作.

服务应该永远不要假设与桌面进行登录会话以进行交互.

相反,您应该拥有第二个应用程序,该应用程序在用户登录时(或其他某个时间点)运行,并与服务进行通信,然后在接收到来自服务的通知/响应时显示UI元素.

有关详细信息,请参阅此其他问题(和答案):

How to detect if a Window can be Shown?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读