使用 Windows API 检测所有连接的显示器
Detect all connected monitors using Windows API
我正在使用Windows 7.当我在电脑运行时插入一个新的显示器时,没有自动检测到显示器。我必须转到“显示”->“屏幕分辨率”并单击“检测”按钮才能使用注册表配置检测显示器。
我正在寻找一种使用 Windows API 以编程方式执行相同操作的方法。所以我想编写一个程序来检测所有连接的监视器,再现检测按钮。我尝试使用 ChangeDisplaySettingEx
但结果不佳。有什么建议吗?
如果您想了解显示感知应用,您应该阅读 this。
不是真正的 WinApi,但试试这个实用程序:
C:\Windows\System32\DisplaySwitch.exe
DisplaySwitch.exe /internal - Switch to Primary only
DisplaySwitch.exe /external - Switch to Secondary only
DisplaySwitch.exe /clone - Clone desktop on both screens (Not HDCP compliant!)
DisplaySwitch.exe /extend - Extend desktop to both screens
特别是,尝试/extend开关,它应该在内部执行检测。
不是 API 解决方案,但您可以在命令行上使用 MS 的 DevCon 实用程序来扫描新硬件。
https://support.microsoft.com/en-us/kb/311272
从该页面下载它,然后从 cmd 执行它 window:
devcon.exe rescan
您可以轻松地从 link.
创建一个 .bat 或 .cmd 文件到 运行
我正在使用Windows 7.当我在电脑运行时插入一个新的显示器时,没有自动检测到显示器。我必须转到“显示”->“屏幕分辨率”并单击“检测”按钮才能使用注册表配置检测显示器。
我正在寻找一种使用 Windows API 以编程方式执行相同操作的方法。所以我想编写一个程序来检测所有连接的监视器,再现检测按钮。我尝试使用 ChangeDisplaySettingEx
但结果不佳。有什么建议吗?
如果您想了解显示感知应用,您应该阅读 this。
不是真正的 WinApi,但试试这个实用程序:
C:\Windows\System32\DisplaySwitch.exe
DisplaySwitch.exe /internal - Switch to Primary only
DisplaySwitch.exe /external - Switch to Secondary only
DisplaySwitch.exe /clone - Clone desktop on both screens (Not HDCP compliant!)
DisplaySwitch.exe /extend - Extend desktop to both screens
特别是,尝试/extend开关,它应该在内部执行检测。
不是 API 解决方案,但您可以在命令行上使用 MS 的 DevCon 实用程序来扫描新硬件。
https://support.microsoft.com/en-us/kb/311272
从该页面下载它,然后从 cmd 执行它 window:
devcon.exe rescan
您可以轻松地从 link.
创建一个 .bat 或 .cmd 文件到 运行