当 exe 作为 Windows 服务运行时,我在检索事件监视器的数量时遇到了问题。我尝试使用 EnumDisplayDevices 和 GetSystemMetrics(SM_CMONITROS) 来获取监视器的数量,这两种方法在以控制台模式运行时(意味着由用户启动)会给我正确的监视器数量,但是当我将 exe 注册为服务并通过windows服务运行,结果报告的监视器数量不正确。
作为 Windows 服务运行时,是否有任何其他方法可以确定事件监视器的数量?或者任何其他解决方法?提前致谢!
最佳答案
出于安全原因,不允许服务与用户桌面交互。因此,他们在与物理桌面无关的虚拟桌面中运行。您可以尝试以下操作。在服务管理器的服务列表中。右键单击您的服务,转到属性并在那里“登录”。您可以在那里更改服务正在使用的帐户。使用“本地系统帐户”,您可以勾选“允许服务与桌面交互”。我自己没有尝试过。但是为了交互服务必须获得对“真实”桌面的访问权限,因此监视器数量应该是正确的。
关于c++ - 作为 Windows 服务运行时,如何获取事件监视器的数量? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617048/