我在Windows服务中使用捕获屏幕所有代码都以win形式正常工作但在win服务中返回黑色图片所以我搜索并查找this并尝试查找“允许服务与桌面交互”选中(在服务属性中)但没有任何具有该名称的属性。有什么想法吗?怎么/在哪里可以找到它?我使用Windows Server 2008 R2 SP1和VS2010以及C#4,如果此版本中没有任何属性,我该怎么办?
答案 0 :(得分:2)
该设置是遗留设置,无法解决您的问题。从Vista开始,您的服务无法访问交互式桌面,您需要从交互式桌面上运行的标准应用程序执行屏幕捕获。
您可以使用IPC机制在服务和桌面应用之间进行通信。你可以从服务启动这个桌面应用程序,但这很棘手,如here所述。
选中“允许服务与桌面交互”只意味着您可以无错误地调用交互式API函数。您无法访问inreractive桌面。这个问题都源于Vista中引入的变化,这意味着服务在隔离会话中运行,会话0。
答案 1 :(得分:0)
要设置此属性,您必须打开Windows服务管理,右键单击您的服务并打开属性。之后选择“登录”选项卡。当您的服务在本地系统下运行时,您可以选择“允许服务与桌面交互”。