【问题标题】:Windows: Look up screen resolution when running as a serviceWindows:作为服务运行时查找屏幕分辨率
【发布时间】:2014-09-05 06:39:11
【问题描述】:

我有代码作为 Windows 服务运行,它想确定直接连接的监视器的分辨率。

(是的,我很欣赏用户可能通过 RDP、VDI 等与机器进行交互,所以这并不总是有意义 - 但这只是一种优化,所以在通常情况下只有一个直接连接的桌面,它仍然很有用。)

我想使用::GetSystemMetrics(SM_CXVIRTUALSCREEN),但它返回 0,因为我在会话 0 中运行。同样,EnumDisplayDevices 看起来只适用于当前的交互式会话。

我们希望即使没有用户登录也能做到这一点。

有没有办法将硬件屏幕分辨率作为一项服务来探索?

【问题讨论】:

    标签: windows winapi


    【解决方案1】:

    EnumDisplayDevices()documentation 明确表示:

    EnumDisplayDevices 函数可让您获取有关当前会话中的显示设备的信息。

    由于服务在会话 0 中运行,并且会话 0 中没有显示,因此没有可枚举的监视器信息。

    尝试改用EnumDisplayMonitors()

    【讨论】:

    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多