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

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作为结果(这意味着成功)。

我做了什么错?

感谢您。

有帮助吗?

解决方案

我想你需要设置更多的不仅仅是位置字段,你很可能得到EnumDisplaySettings当前设置(至少在大小和颜色,也许刷新率也)

其他提示

我还没有尝试过自己,但它在这个论坛有一个线索。该代码是不是C#,但它是可以理解的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top