我正在开发一个在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启用扩展模式?