Winapi 您能否将ChangeDisplaySettingsEx与多个监视器一起使用,在克隆和扩展桌面之间切换

Winapi 您能否将ChangeDisplaySettingsEx与多个监视器一起使用,在克隆和扩展桌面之间切换,winapi,vb6,Winapi,Vb6,我正在开发一个在Windows XP(嵌入式)上运行的旧式vb6应用程序,该应用程序使用ChangeDisplaySettingsEx来控制所连接监视器的分辨率 我的任务是找到一种方法,当安装了多个监视器时,让ChangeDisplaySettingsEx在克隆模式和扩展模式之间切换 连接第二台监视器时,它会自动在克隆模式下工作 当我使用EnumDisplayDevices枚举可用的显示设备时,display_DEVICE.DeviceString显示如下: \\.\DISPLAY1\Monit

我正在开发一个在Windows XP(嵌入式)上运行的旧式vb6应用程序,该应用程序使用ChangeDisplaySettingsEx来控制所连接监视器的分辨率

我的任务是找到一种方法,当安装了多个监视器时,让ChangeDisplaySettingsEx在克隆模式和扩展模式之间切换

连接第二台监视器时,它会自动在克隆模式下工作

当我使用EnumDisplayDevices枚举可用的显示设备时,display_DEVICE.DeviceString显示如下:

\\.\DISPLAY1\Monitor0
\\.\DISPLAY1\Monitor1
\\.\DISPLAY1\Monitor0
\\.\DISPLAY2\Monitor0
当监视器处于扩展模式时,它们显示如下:

\\.\DISPLAY1\Monitor0
\\.\DISPLAY1\Monitor1
\\.\DISPLAY1\Monitor0
\\.\DISPLAY2\Monitor0
我反复阅读了MSDN,对于如何调用API将模式从克隆更改为扩展,似乎没有一个可靠的答案

我的猜测是分离第二个监视器,然后尝试找出重新连接的方法,所以我开始尝试按照分离,但我无法让任何一个工作

每当我尝试将\.\DISPLAY1\Monitor1解析为ChangeDisplaySettingsEx时,我都会得到DISP\u CHANGE\u BADPARAM-例如

ChangeDisplaySettingsEx(\\.\DISPLAY1\Monitor1, DevM, 0, CDS_GLOBAL Or CDS_UPDATEREGISTRY, 0)
我真是太激动了


有人知道如何使用API禁用克隆模式和启用扩展模式吗?

您确定操作系统/硬件实际上支持扩展桌面吗?XPe在它能做的一些事情上相当有限。我想你的问题已经在这里得到了回答:@KevinBrown你认为vb6和c#足够相似,可以使它成为正确的dup吗?你试过了吗?扩展:
SetDisplayConfig(0,NULL,0,NULL,(SDC_应用| SDC_拓扑_扩展))克隆:
SetDisplayConfig(0,NULL,0,NULL,(SDC_应用| SDC_拓扑_克隆))