我有一个 C# 应用程序,它在运行时使用 DisplaySwitch.exe 将显示设置更改为内部。

问题是它需要在更改之前检测计算机的当前设置,以便在应用程序完成后可以将其恢复到原始设置。

我在大小、分辨率等显示设置上找到了不同的示例,但没有发现显示是在内部监视器、外部监视器、扩展还是复制上。

我需要在从 XP 到当前的所有 Windows 版本上执行此操作。

最佳答案

据我所知,这是不可能在 C# 中显式地执行 的。换句话说,您无法进行任何会返回“扩展”或“重复”的调用。

但是,如果您了解有关目标系统的足够信息,则此状态可以是 推断的 。由于您关心重复/扩展,我们可以假设它们始终处于多显示器设置中。因此,在开始时获取监视器计数:

Screen.AllScreens.Length

如果是2,答案很简单。用户必须处于扩展模式!如果是 1,则您处于其他 3 种模式中的一种,需要决定要返回到哪一种。重复似乎是最有可能的选择。

希望这有帮助!

关于c# - 如何检测当前显示设置(即扩展、重复等),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23018118/

10-14 19:15
查看更多