Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何以编程方式从win7中的“屏幕分辨率”对话框中获取监视器编号?_Windows_Winapi_Windows 7_Windows Shell_Multiple Monitors - Fatal编程技术网

Windows 如何以编程方式从win7中的“屏幕分辨率”对话框中获取监视器编号?

Windows 如何以编程方式从win7中的“屏幕分辨率”对话框中获取监视器编号?,windows,winapi,windows-7,windows-shell,multiple-monitors,Windows,Winapi,Windows 7,Windows Shell,Multiple Monitors,当您按下屏幕分辨率对话框中的标识按钮时,Windows会在每个显示器上显示白色的大显示器号。在WindowsXP(使用EnumDisplayDevices)中,通过编程很容易找到它们以及监视器坐标,但在Windows7上,它被破坏了。我该怎么做 EnumDisplayDevices和GetMonitorInfo在Windows 7中用于此目的 我尝试获取MonitorInfo,然后从MonitorInfo.szDevice(即\.\Display2)提取监视器编号,但没有成功。两年前另一个人声称

当您按下屏幕分辨率对话框中的标识按钮时,Windows会在每个显示器上显示白色的大显示器号。在WindowsXP(使用EnumDisplayDevices)中,通过编程很容易找到它们以及监视器坐标,但在Windows7上,它被破坏了。我该怎么做

  • EnumDisplayDevices和GetMonitorInfo在Windows 7中用于此目的
  • 我尝试获取MonitorInfo,然后从MonitorInfo.szDevice(即\.\Display2)提取监视器编号,但没有成功。两年前另一个人声称getMonitorInfo有一个bug。已被Microsoft标记为已修复,没有任何注释,但仍可以在具有最新更新的win7计算机上复制。(顺便说一句,有人能告诉我-也许win8上没有这个bug?)
  • 我尝试了新的CCD API,但没有找到需要的信息

  • 有人知道路吗?

    我从来都不想知道我的Windows应用程序中监视器的数量,但是你可以使用参数值调用SM\u CMONITORS来获取桌面上显示器的数量

    我调用我的Windows应用程序函数
    GetSystemMetrics
    ,主要使用参数值
    SM_CXVIRTUALSCREEN
    SM_cVirtualScreen
    SM_XVIRTUALSCREEN
    SM_YVIRTUALSCREEN
    ,以避免在显示区域之外完全或部分打开应用程序窗口。但是,如果用户将显示区域扩展到多个监视器上,但并非所有监视器都打开,则应用程序窗口可能不可见

    对于
    uiAction
    参数,具有值
    SPI_GETWORKAREA
    的函数对于了解应用程序窗口的位置以及它在主屏幕上的宽度和高度有多大也非常有用,而不会被始终位于顶部的其他窗口(条)部分隐藏


    另请参见您的Windows应用程序中是否需要来自监视器的更多信息。

    我从来都不想知道Windows应用程序中监视器的数量,但您可以使用参数值
    SM\u CMONITORS
    调用以获取桌面上显示监视器的数量

    我调用我的Windows应用程序函数
    GetSystemMetrics
    ,主要使用参数值
    SM_CXVIRTUALSCREEN
    SM_cVirtualScreen
    SM_XVIRTUALSCREEN
    SM_YVIRTUALSCREEN
    ,以避免在显示区域之外完全或部分打开应用程序窗口。但是,如果用户将显示区域扩展到多个监视器上,但并非所有监视器都打开,则应用程序窗口可能不可见

    对于
    uiAction
    参数,具有值
    SPI_GETWORKAREA
    的函数对于了解应用程序窗口的位置以及它在主屏幕上的宽度和高度有多大也非常有用,而不会被始终位于顶部的其他窗口(条)部分隐藏


    另请参阅Windows应用程序中是否需要来自监视器的更多信息。

    对于支持WDDM的Windows版本(Windows 7支持WDDM),您只需使用DirectX的DXGI即可。DXGI允许您非常轻松地枚举现有的显示适配器、每个适配器的可用显示输出以及每个显示输出支持的显示模式。在枚举时,您可以读取大量其他数据,如句柄、标识符和设备名称。所有这些都可以轻松地用于检索工作区域。适配器和输出的枚举顺序由系统定义,并与配置屏幕的顺序相匹配


    有关更多信息,请参见此处:

    对于支持WDDM的Windows版本(Windows 7支持WDDM),您只需使用作为DirectX一部分的DXGI即可。DXGI允许您非常轻松地枚举现有的显示适配器、每个适配器的可用显示输出以及每个显示输出支持的显示模式。在枚举时,您可以读取大量其他数据,如句柄、标识符和设备名称。所有这些都可以轻松地用于检索工作区域。适配器和输出的枚举顺序由系统定义,并与配置屏幕的顺序相匹配


    有关更多信息,请参见此处:

    Windows不提供允许应用程序获取显示设置应用程序使用的数字的功能。这些数字本身仅适用于显示设置应用程序,在系统或用于查询/设置显示拓扑的中没有任何意义


    最好的选择是应用程序在提示用户选择显示器时定义自己的索引分配标准。

    Windows不提供允许应用程序获取显示器设置应用程序使用的数字的功能。这些数字本身仅适用于显示设置应用程序,在系统或用于查询/设置显示拓扑的中没有任何意义

    最好的选择是,应用程序在提示用户选择显示时定义自己的索引分配标准。

    可能重复的可能重复的