C# 在Windows 8中执行自动更改已连接的显示
短版 如何自动更改多个显示设置?NVIDIA,3个监视器(2个DVI和1个HDMI),GPU仅支持2个活动监视器C# 在Windows 8中执行自动更改已连接的显示,c#,batch-file,windows-8,hardware,nvidia,C#,Batch File,Windows 8,Hardware,Nvidia,短版 如何自动更改多个显示设置?NVIDIA,3个监视器(2个DVI和1个HDMI),GPU仅支持2个活动监视器 长版本 因此,我有一个NVIDIA GeForce GTX 560 Ti,它可以同时运行两个显示器。它有两个DVI连接和一个HDMI。我经常不使用两台桌面显示器,而只使用HDMI连接一台桌面显示器和电视 我希望使用批处理脚本或其他程序来自动地进行更改,而不是使用Windows控制面板(控制面板\所有控制面板项\显示\屏幕分辨率)或英伟达控制面板。 我找到了一些关于使用“rundll
长版本 因此,我有一个
NVIDIA GeForce GTX 560 Ti
,它可以同时运行两个显示器。它有两个DVI连接和一个HDMI。我经常不使用两台桌面显示器,而只使用HDMI连接一台桌面显示器和电视
<>我希望使用批处理脚本或其他程序来自动地进行更改,而不是使用Windows控制面板(控制面板\所有控制面板项\显示\屏幕分辨率)或英伟达控制面板。
我找到了一些关于使用“rundll32.exe
,NvCpl.dll
,dtcfg
…”等的文档。这根本不起作用。从英伟达PDF文档中使用的任何参数都不会发生任何事情。有人举过一个有效的例子吗?我也在Windows7上试用过
我尝试使用WMI查看监视器是否存在,但它仅显示两个活动监视器。它不显示第三个非活动监视器
我已尝试从User32.dll中使用EnumDisplayDevices
,但这仅返回两个活动监视器
我怎样才能让它工作
我想让它在C#中工作,这样我也可以在更换音频设备时使用:)虽然这可能不符合您的要求,但我在使用笔记本电脑为多个显示器供电时遇到了这个问题,最后我使用了中的显示配置文件功能。我从未使用过,但我知道它们确实支持自动化和SDK访问
注意:我与UltraMon没有任何关联,我只是使用了他们的产品,并发现它满足了我的需求。这项功能正常吗?我面临着类似的问题。rundll32.exe命令对我也不起作用。我在WinXP上也尝试了同样的方法,效果很好。在WiXP兼容模式下,你尝试过控制面板API的样例应用程序吗?不,我还没有找到一种方法来做这个。你试过了吗?没有尝试过这个,在谷歌结果上缺少C语言示例,不知道是否有人用C++或其他语言来做屏幕更改的例子。正如我在问题中所描述的:)这解释了Win32 API中的ChangeDisplaySettingsEx函数。这显示了如何获得非活动显示。你应该看看他们