문제

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#이 아니지만 이해할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top