题
我希望能够让我用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#,但它是可以理解的。
不隶属于 StackOverflow