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

时间:2011-11-20 04:16:58

标签: winapi vb6

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

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

当连接第二台显示器时,它会自动在克隆模式下工作。

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

\\.\DISPLAY1\Monitor0
\\.\DISPLAY1\Monitor1

当监视器处于扩展模式时,它们显示如下:

\\.\DISPLAY1\Monitor0
\\.\DISPLAY2\Monitor0

我已经反复阅读过MSDN,并且对于如何调用API将模式从克隆更改为扩展,似乎没有一个可靠的答案。

我的猜测是分离第二台显示器,然后尝试找出重新连接的方法,所以我开始尝试按照http://msdn.microsoft.com/en-us/library/dd162617(v=vs.85).aspx分离,但我无法使其中任何一个工作。

每当我尝试解析\。\ DISPLAY1 \ Monitor1到ChangeDisplaySettingsEx时,我会得到DISP_CHANGE_BADPARAM - 例如

ChangeDisplaySettingsEx(\\.\DISPLAY1\Monitor1, DevM, 0, CDS_GLOBAL Or CDS_UPDATEREGISTRY, 0)

我真的把头发拉出来了。

有谁知道如何禁用克隆模式并使用API​​启用扩展模式?

0 个答案:

没有答案