c# - 以编程方式启用辅助监视器

标签 c# winapi monitor

我希望能够在 Windows Vista 中使用 C# 启用我的辅助监视器。这是我所做的:

SafeNativeMethods.EnumDisplayDevices(null, (uint)id, ref d, (uint)0);
...
SafeNativeMethods.EnumDisplaySettings(d.DeviceName, -2, ref mode0);
...
SafeNativeMethods.DEVMODE dm = mode0;

dm.dmPosition.x = 1440;
dm.dmFields = SafeNativeMethods.DM_POSITION;
long result = SafeNativeMethods.ChangeDisplaySettingsEx(d.DeviceName, ref dm, IntPtr.Zero, SafeNativeMethods.CDS_NORESET| SafeNativeMethods.CDS_UPDATEREGISTRY, IntPtr.Zero);
result = SafeNativeMethods.ChangeDisplaySettingsEx(null, ref dm, IntPtr.Zero, SafeNativeMethods.CDS_UPDATEREGISTRY, IntPtr.Zero);

即使结果为 0(这意味着成功),这也不会影响我的辅助监视器。

我做错了什么?

谢谢。

最佳答案

我认为您需要设置的不仅仅是 Position 字段,您可能可以从 EnumDisplaySettings 获取当前设置(至少是大小和颜色,也许还有刷新率)

关于c# - 以编程方式启用辅助监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1084657/

相关文章:

c# - UBound 数组 vb6 转换为 C#

c# - 使用 RichTextBox 而不是 TextBox 有什么好处?

hadoop - 如何监控集群的HDFS复制进度?

java - 内部/监视器锁和继承

c# - 如何在 .Net 4 中禁用显式垃圾收集?

c# - "Publish language"选项到底是什么?

c - 在 TOPMOST 窗口之后放置一个窗口

c++ - Windows 标题栏图标

C++ 使用 ShowWindow 恢复窗口会禁用其最小化功能

java - 这些线程在哪个对象上同步