2 차 모니터를 프로그래밍 방식으로 활성화하십시오
문제
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을 얻는 경우에도 2 차 모니터에 영향을 미치지 않습니다 (성공적인 의미).
내가 무엇을 잘못 했습니까?
고맙습니다.
해결책
위치 필드 이상을 설정해야한다고 생각합니다. 아마도 EnumDisplaySettings에서 현재 설정을 얻을 수 있습니다 (적어도 크기와 색상, 아마도 새로 고침 속도).
다른 팁
나는 그것을 직접 시도하지 않았지만 사람들이 이 포럼 단서가 있습니다. 코드는 C#이 아니지만 이해할 수 있습니다.
제휴하지 않습니다 StackOverflow