ActiveXObject获取显示器信息不准确

发布于 2022-09-11 21:23:09 字数 1373 浏览 28 评论 0

1.IE11上想通过ActiveXObject判断显示器的个数,在双屏的情况下,但是返回的信息只有一个显示器的信息。

  1. 代码如下:
export function openPageActiveObject(windows = []) {
    const flag = checkBrowserIsIE();
    if (!flag) {
        return;
    }

    const locator = new ActiveXObject("WbemScripting.SWbemLocator"); // eslint-disable-line
    const service = locator.ConnectServer(".");

    // 显示器
    // eslint-disable-next-line no-undef
    const properties = service.ExecQuery("SELECT * FROM Win32_DesktopMonitor");
    // eslint-disable-next-line no-undef
    const xsq = new Enumerator(properties);

    // 得到所有显示器的分辨率
    let xsq1Width;
    let xsq1Height;
    let xsq2Width;
    let xsq2Height;
    let i = 1;

    xsq.moveFirst();
    for (; !xsq.atEnd(); xsq.moveNext()) {
        // console.log("============== xsq.item():",xsq.item());
        if (i === 1) {
            xsq1Width = xsq.item().ScreenWidth;
            xsq1Height = xsq.item().ScreenHeight;
        } else if (i === 2) {
            xsq2Width = xsq.item().ScreenWidth;
            xsq2Height = xsq.item().ScreenHeight;
        }
        i++;
    }

    // 判断单双屏
    if (
        (xsq1Width == null && xsq1Height == null) ||
        (xsq2Width == null && xsq2Height == null)
    ) {
        console.log("========单屏")
    } else {
        console.log("=========双屏")
        
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文