繁体   English   中英

作为Windows服务运行时,如何获取活动监视器的数量? C ++

[英]When running as a windows service, how do i get the number of active monitors? C++

当exe作为Windows服务运行时,在检索活动监视器的数量时遇到了一个问题。 我尝试使用EnumDisplayDevices和GetSystemMetrics(SM_CMONITROS)获取监视器的数量,当以控制台模式运行它们(由用户启动)时,这两种方法将为我提供正确的监视器数量,但是当我将exe注册为服务并通过Windows服务运行它,报告的监视器数量被证明是不正确的。

还有其他方法来确定作为Windows服务运行时活动监视器的数量吗? 还是其他解决方法? 提前致谢!

出于安全原因,不允许服务与用户桌面进行交互。 因此,它们在虚拟桌面中运行,而该虚拟桌面与物理桌面无关。 您可以尝试以下方法。 在服务管理器的服务列表中。 右键单击您的服务,转到属性,然后单击“登录”。 您可以在那里更改服务使用的帐户。 使用“本地系统帐户”,您可以选中“允许服务与桌面交互”。 我没有尝试过我的自我。 但是,为了进行交互,服务必须获得对“真实”桌面的访问权限,因此监视器数量应该正确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM