无法访问显示组件 - 从 Windows 服务调用

Posted

技术标签:

【中文标题】无法访问显示组件 - 从 Windows 服务调用【英文标题】:Cannot access display component - Calling from Windows service 【发布时间】:2016-12-01 12:24:29 【问题描述】:

我正在使用“nssm”运行服务。 nssm 服务启动一个调用 exe 的应用程序。该exe应该截取屏幕截图。当应用程序作为独立运行时由应用程序调用时,exe 工作正常。但是当应用程序作为服务运行时被应用程序调用时,exe无法访问显示(不起作用)。

附:我已经使用 C、C++、Python、GoLang 尝试了屏幕截图 exe

【问题讨论】:

【参考方案1】:

Windows 服务(我假设您说的是 Windows)用于后台处理,没有附加 UI。因此,无论您使用哪种语言,恐怕它都行不通。

【讨论】:

【参考方案2】:

AFAIK,它是设计的:默认情况下服务无法访问显示。您必须进入控制面板/管理员。工具/计算机管​​理/服务。然后在服务的属性中,选项卡连接中有复选框允许桌面交互。必须勾选以允许服务访问显示,默认不勾选。

注意:名字可能会有点不对劲,因为我的机器不会说英语...

【讨论】:

我尝试了“允许桌面交互”,但也不起作用。因为exe是需要桌面交互的,而不是调用应用程序。

以上是关于无法访问显示组件 - 从 Windows 服务调用的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 IIS 7 从 Web 服务调用 COM 组件

腾讯云服务器安全加固组件有时正常有时异常

无法从 Windows 服务调用动态加载的 DLL 中的类

Angular:为组件字段提供对服务功能的引用并从模板调用它无法按预期工作

System.Diagnostics.Process.Start() 从 Windows 服务调用时无法启动进程

从 Windows 服务访问 NFS 共享