环境:

win7 64 +VS2015

1,使用EnumDisplayDevices先枚举出电脑上面所有的显示器

C++ 代码

list<DISPLAY_DEVICE> dev_list; //设备列表

std::list<DISPLAY_DEVICE> devices;
    std::list<DEVMODE> modes;
    int devId = 0;
    bool ret = false;
    bool isPrimary = false;

do
    {
        DISPLAY_DEVICE displayDevice;
        ZeroMemory(&displayDevice, sizeof(DISPLAY_DEVICE));
        displayDevice.cb = sizeof(displayDevice);

ret = EnumDisplayDevices(NULL, devId, &displayDevice, 0);
        if (ret == true)
        {
            //if ((displayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) == DISPLAY_DEVICE_ATTACHED_TO_DESKTOP)
            {
                devices.push_back(displayDevice);
                isPrimary = ((displayDevice.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) == DISPLAY_DEVICE_PRIMARY_DEVICE);
                if (isPrimary)
                    PrimaryNum = devId;
            }
        }
        devId++;
    } while (ret);

dev_list = devices;

std::list<DISPLAY_DEVICE>::iterator it;
    for (it = dev_list.begin(); it != dev_list.end(); it++)
    {
        DEVMODE deviceMode;
        deviceMode.dmSize = sizeof(DEVMODE);
        deviceMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL | DM_POSITION | DM_DISPLAYFREQUENCY | DM_DISPLAYFLAGS; // | DM_DISPLAYORIENTATION;

EnumDisplaySettings(it->DeviceName, (int)ENUM_REGISTRY_SETTINGS, &deviceMode);
        modes.push_back(deviceMode);
    }

经过上述操作 EnumDisplayDevices后 会拿到电脑上面已经连接的显示器和断开连接的显示器,其中正常连接的DISPLAY_DEVICE.StateFlags为1,未连接的为2

比如上图中 正常显示为2个,断开连接的为1个,但是有些机器可能会枚举到超过三个显示器的连接-目前还没查明原因,等后续有空研究了在补充

使用 ChangeDisplaySettingsEx来启用断开连接的显示器--已经经过验证是可以的

ChangeDisplaySettingsEx((LPCWSTR)DisplayDevice.DeviceName, &DevMode, NULL, CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
ChangeDisplaySettingsEx(NULL, NULL, NULL, 0, NULL);

附上此段连接:https://stackoverflow.com/questions/35033525/attach-disabled-display-device-with-winapi

启用步骤总结:

1,调用 EnumDisplayDevices

2,调用 ChangeDisplaySettingsEx((LPCWSTR)DisplayDevice.DeviceName, &DevMode, NULL, CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
ChangeDisplaySettingsEx(NULL, NULL, NULL, 0, NULL);

备注:

1,使用 sendmessage,setdisplayconfig有时候是无法启用断开的显示器

2,EnumDisplayDevices有时候可以枚举到多个不存在的显示器(除了正常和断开的显示器),不要紧,直接循环启用即可

C++ C# 启用灰显的显示器序列号 --多屏器启用断开的显示器相关推荐

  1. 使用自定义材质球,实现NGUI屏幕溶解和灰显

    UITexture实现的溶解: 重设UITeture的材质球实现上述效果,把当前屏幕渲染的Texture2D丢给UITexture,即可实现UI屏幕特效,背景模糊等都可以. 难点主要是实时刷新问题 解 ...

  2. ALV Checkbox 单行灰显

    用 Function Module REUSE_ALV_GRID_DISPLAY 处理 ALV Checkbox 时,只能整列灰显Checkbox. 而用 Function Module REUSE_ ...

  3. android sdk是灰的,Android Studio 2.3 sdk管理器标签灰显

    Android Studio 2.3 - >配置 - > SDK管理器. 这些选项卡呈灰色显示: SDK工具,SDK更新站点.此外,"Show Package Details&q ...

  4. UGUI 图片灰显裁剪

    今天项目出现一个问题,我们灰显的图片无法被viewport进行裁剪,因为灰显的图片使用了我们自定义的shader,然而里面却没有裁剪的功能. 所以网上搜了一下, 大概解决办法就是,用原生的UGUI的s ...

  5. 显示器序列号查询方式

    序列号位置:位于显示器背部下方凹槽内 显示S/N或序号字段,可参考本文最下方图片 方式一:人工输入 方式二:微信提取文字,步骤如下 序列号拍照>发送到自己微信>长按图片>提取文字(i ...

  6. Android WebView 视频播放,全屏按钮不显示或灰显解决方案

    Android WebView 视频播放,全屏按钮不显示或灰显解决方案 背景 问题定位 背景 在Android开发中,遇到了如下问题:Activity内嵌WebView,加载有视频的页面时,视频无法全 ...

  7. SystemUI添加第三方快捷开关时灰显问题分析

    作者:neek.chen Android7.0上不仅有默认的快捷快关(QSTile),也允许客户自行添加第三方快捷开关(CustomTile).本文只介绍在绑定第三方CustomTile时遇到的间歇性 ...

  8. 一个获取电脑显示器序列号的VBS脚本

    "获取电脑显示器序列号",这个任务通过反复尝试完成了.可惜,没法用,产品提的需求是获取显示器背后的标签上的序列号.我只听到"序列号"就信心满满的开工了.教训惨重 ...

  9. vue中的el-input设置灰显不可编辑

    代码如下 <el-input disabled = "true"/> 上面的代码能实现输入框灰显,但是控制台会报错,具体报错如下: invalid prop: type ...

最新文章

  1. 聊聊 HashMap 和 TreeMap 的内部结构
  2. 未能加载文件或程序集“****”或它的某一个依赖项。试图加载格式不正确的程序。解决方案总结
  3. 8.17——继续熟悉linux的命令行
  4. 【Flutter】ListView 列表高级功能 ( ScrollController 上拉加载更多 )
  5. matlab常用代码总结
  6. github大学课程_GitHub基础教程:如何使用GitHub课程
  7. eclipse 中提示tomcat 的端口被占用了 后的最快捷解决方法
  8. python3.6.5安装步骤-Ubuntu16.04安装python3.6.5步骤详解
  9. HDOJ--1233--还是畅通工程
  10. 3、圆周运动与椭圆运动
  11. 微信公众号图片无法正常显示
  12. vba formula 公式的引用
  13. 求n至少为多大时,n个1组成的整数能被2013整除?
  14. 微信小程序 自动换行
  15. 长时间 正在加载个人设置 开机很慢
  16. ubuntu 安装 navicat
  17. echarts 5.x 版本词云无法正常显示问题
  18. 联系我们吧 - 12个联系我们表单和页面设计赏析和学习
  19. android eth0静态ip,在android中将静态IP设置为以太网
  20. react 引入远程 动态图片 和 引入本地 图片

热门文章

  1. bes2300之按键配置(二)
  2. android dts的作用,DTS相关知识
  3. 有必要稍微 吹一下苹果!
  4. 很遗憾,你们的问题我无法回答--Leo谈应届生求职(10)
  5. [JavaScript]基础(变量、数据类型)
  6. ThinkAdmin(CVE-2020-25540)漏洞复现
  7. 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
  8. 百面机器学习 -- No.2 特征工程 -- 训练数据不足的情况下会带来什么问题,如何缓解?
  9. 河南科技大学计算机科学与技术分数线,河南科技大学2020年录取分数线(附2017-2020年分数线)...
  10. 电脑任务管理器里的进程