2009-07-05 76 views
4

我希望能夠在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的結果(這意味着成功的)。

我做錯了什麼?

謝謝。

回答

1

我認爲你需要設置更多的不僅僅是位置字段,你很可能得到EnumDisplaySettings當前設置(至少在大小和顏色,也許刷新率也)

0

我還沒有嘗試過自己,但似乎在this forum的人都有線索。該代碼不是C#,但它是可以理解的。

相關問題