質問
私は、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);
これは私が(SUCCESSFULを意味する)、結果として0を取得した場合でも、私のセカンダリモニタには影響しません。
私が間違って何をした?
ありがとうございます。
解決
私はあなただけPositionフィールド以上に設定する必要があると思う、あなたはおそらく、
(多分もリフレッシュレート、少なくとも、サイズや色)EnumDisplaySettingsから現在の設定を得ることができます他のヒント
このフォーラムを、私はそれを自分自身を試していないが、それはで人々を超えるようですには手掛かりを持っています。コードは、C#ではありませんが、それは理解できるのです。
所属していません StackOverflow