5分 |
|
你理解错我的意思了,我是要把第二块显示器检测出来,然后让第二块显示器可以用,不是将form放到第二块显示器上运行 |
|
有,用screen
this.DesktopBounds = Screen.AllScreens[1].Bounds; |
|
那我也理解错了,
|
|
5分 |
这是调用显示控制器的,有很多参数,
ManagementObjectSearcher searcher = new ManagementObjectSearcher(“SELECT * FROM Win32_VideoController”); ManagementObjectSearcher searcher = new ManagementObjectSearcher(“SELECT * FROM Win32_VideoController”); string a = “适配器兼容性 ” + info[“AdapterCompatibility”].ToString(); string b = “适配器类型 ” + info[“AdapterDACType”].ToString(); string c = “视频模式描述” + info[“VideoModeDescription”].ToString(); string d = “字幕” + info[“Caption”].ToString(); string e = “目前比特每像素” + info[“CurrentBitsPerPixel”].ToString(); string f = “目前的水平分辨率” + info[“CurrentHorizontalResolution”].ToString(); string g = “视频处理器” + info[“VideoProcessor”].ToString(); string h = “最大刷新率” + info[“MaxRefreshRate”].ToString(); string i = “设备ID” + info[“DeviceID”].ToString(); string j = “描述” + info[“Description”].ToString(); 不过,我没找到第二个接口的方法 |
这个有什么意义么,用户接了两个显示器,不是应该自己设置让两个显示器都显示么
难道用户自己禁用了其中一个,你程序想强制让显示器启用 如果用户就是想禁用,他直接连显示器电源都关闭了,你程序做什么都没用. |
|
你没遇到过刚装机的那种情况,就是一开机,就只有2个显示,而且都是一样的屏幕,要的就是把显示器扩展成1,2 |
|
45分 |
你截图里面的功能,获取连接显示器信息和切换主显示器用到三个API函数
[DllImport("user32.dll")] static extern bool EnumDisplayDevices(string lpDevice, uint iDevNum, ref DISPLAY_DEVICE lpDisplayDevice, uint dwFlags); [DllImport("user32.dll")] public static extern bool EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode); [DllImport("user32.dll")] static extern DISP_CHANGE ChangeDisplaySettingsEx(string lpszDeviceName, ref DEVMODE lpDevMode, IntPtr hwnd, uint dwflags, IntPtr lParam); |
这是我后面要做的,但是我前面要做的是检测显示器设备,并且扩展出来,我才能做后面的事情 |
|
需要现成开源项目和程序: multi-monitor-dock-util
|
|
5分 |
想程序检测、控制这里的显示器设置,貌似……
DVI 接口的需要,因为在系统运行后,减少DVI接口上的显示器,程序会自动跳回来,但是增加了,程序不会动 HDMI 接口的,好像是自动会跳回去了…… 程序中不需要代码控制 我们做的系统,将播放界面放HDMI 端口的显示设备播放,就没写你说的那部分代码,只是在播放界面启动时, 加入了界面坐标。 |
EnumDisplayDevices就是检测枚举显示器设备API函数
添加和移除显示器,参考代码DispalyControlHelpers.cs 要扩展显示器,就是设置主屏幕的dmPosition.x = 0,然后设置第二屏的dmPosition.x += 第一屏的宽度 (假设两个屏都是水平放置的),然后调用ChangeDisplaySettingsEx去更新设置。 |
|
电脑是双显卡的吗,看看另一显卡的驱动安装好了没有!
|
|
能不能帮我看一下,我在 if (!EnumDisplaySettings(DisplayDevice.DeviceName, -1,ref defaultMode)) { return; } 就直接return了,EnumDisplayDevices获取DisplayDevice的信息获取不到,DisplayDevice.DeviceName的值是“\” |