您好,匿名用户
随意问技术百科期待您的加入

在XP系统下如何检测新接入的显示器,并将其设置为扩展模式?

0 投票

目前在做一个软件,运行软件后,再同一张显卡上再接入一个显示器,即刻将其设置为屏幕扩展模式。
目前在检测新接入显示器时卡住了。如果显示器在开机时没有接入,开机后接入的话,程式会无法检测到该显示器。
我检测的方法是通过EnumDisplayDevices来枚举显示器,如果检测到的显示器信息DeviceID(查到该值表示所接入显卡ID)为空。就跳过。具体代码如下:

	DISPLAY_DEVICE	m_dd[5];
	DEVMODE		m_dv[5];
	int n = 0, i = 0;
	do
	{
		m_dv[i].dmFields = DM_BITSPERPEL | DM_POSITION | DM_DISPLAYFREQUENCY | DM_DISPLAYFLAGS;    
		flag = EnumDisplayDevices(NULL, i, &m_dd[n], 0);
		if (flag){ i++; }else{ continue; }
		if (_tcslen(m_dd[n].DeviceID) == 0) { continue; }//如果没有接入显卡,就跳过
		EnumDisplaySettings(m_dd[i].DeviceName, ENUM_CURRENT_SETTINGS, &m_dv[n]);
		n++;
	} while (flag && n < 5);

通过代码调试,发现并没有检测到新接入的显示器。但是,在系统的设备管理器中是可以看到该设备的。

用户头像 提问 2012年 12月1日 @ Veigar 上等兵 (210 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

0 投票
1 回复 23 阅读
用户头像 提问 2014年 2月15日 @ Miss Fortune 上等兵 (418 威望)
0 投票
1 回复 29 阅读
+1 投票
1 回复 44 阅读
0 投票
1 回复 34 阅读
0 投票
1 回复 44 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...