我正在编写一个 .NET Windows 服务,其作用是启动 GUI 应用程序(其源不可用)。
该操作是即发即忘,除了初始命令行参数之外没有任何通信。
该服务应该作为给定的 Windows 帐户运行。
问题:服务启动的应用程序是not显示在桌面上。它需要如此,因为它是一个交互式应用程序。解决办法是什么?
注:这是系统的规格和设计。服务/应用程序通信和安全性引起的典型问题请勿应用在这个具体案例中。
编辑:当以本地系统帐户登录时,GUI 元素显示正确,但是,由于 GUI 应用程序需要访问网络驱动器(它无法理解 UNC 映射),因此需要作为指定的用户帐户运行,并且没有“显示交互元素”设置。
edit2:操作系统是Windows 2003 Server,并且没有升级的计划。
不幸的是,自 Vista 以来,这个问题更加严重……有关原因的一些详细信息发布在这篇博文。
这篇文章提到了一些潜在的解决方法。这是 MSDN 上的一个线程详细介绍了整个过程以及您可能会遇到的一些潜在问题。
但是,我强烈建议您尝试查看是否可以切换到让用户模式应用程序作为启动应用程序运行(当用户登录时),并且与您的服务的任何通信都由该应用程序处理。它更加可靠,尤其是在 vista、终端服务和其他情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)