C# 查找Windows服务的“允许服务与桌面交互”复选框(在服务属性中)

C# 查找Windows服务的“允许服务与桌面交互”复选框(在服务属性中),c#,windows-services,C#,Windows Services,我在windows服务中使用捕获屏幕所有代码在win窗体中正常工作,但在win服务中返回黑色图片,因此我搜索、查找并尝试查找允许服务与桌面交互在服务属性中选中,但没有任何具有该名称的属性。有什么想法吗?我怎样/在哪里能找到它?我使用Windows Server 2008 R2 SP1、VS2010和C4,如果此版本中没有任何属性,我该怎么办?要设置此属性,您必须打开Windows服务管理,右键单击您的服务并打开属性。然后选择“登录”选项卡。当您的服务在本地系统下运行时,您可以选择允许服务与桌面交

我在windows服务中使用捕获屏幕所有代码在win窗体中正常工作,但在win服务中返回黑色图片,因此我搜索、查找并尝试查找允许服务与桌面交互在服务属性中选中,但没有任何具有该名称的属性。有什么想法吗?我怎样/在哪里能找到它?我使用Windows Server 2008 R2 SP1、VS2010和C4,如果此版本中没有任何属性,我该怎么办?

要设置此属性,您必须打开Windows服务管理,右键单击您的服务并打开属性。然后选择“登录”选项卡。当您的服务在本地系统下运行时,您可以选择允许服务与桌面交互


该设置是无法解决您的问题的遗留设置。从Vista开始,您的服务无法访问交互式桌面,您需要从在交互式桌面上运行的标准应用程序执行屏幕捕获

您可以使用IPC机制在服务和桌面应用程序之间进行通信。您可以从一个服务启动这个桌面应用程序,但正如前面所解释的,这相当棘手


选中“允许服务与桌面交互”只意味着您可以毫无错误地调用交互式API函数。您无法访问InRecreactive desktop。这个问题都源于Vista中引入的更改,这些更改意味着服务在一个独立的会话(会话0)中运行。

Windows XP!!那是10年前的事了。复选框不再起作用。是时候升级到现代版本的Windows了。@lmw您可以勾选win 7上的复选框,它只是不做您认为它做的事情。我的公司已经开发了几个OPC服务,每个人都需要这个属性。如果未选中,服务将无法在前台打开本地计算机上的其他进程,我的意思是显示winform,而不仅仅是后台进程。但是听起来很有趣,你有关于你论文的链接或博客吗?这里有详细的解释,包括漂亮的图片:并检查相关部分的所有链接。David和我并没有发明这一点。关于会话0隔离,有无数帖子。这里要问的真正问题可能是重复的,那就是为什么[你认为]你首先需要Windows服务。是的,你可以使用David的解决方案,咬紧牙关让IPC在标准用户模式应用程序和服务之间进行通信,但这几乎没有意义。只需创建一个不显示窗口的标准Windows应用程序。从您的角度来看,您将享受到服务的所有好处,而不受限制。这确实是一个非常特殊的情况,有人确实需要Windows服务。我不知道为什么每个人都这么认为。