سؤال

أريد أن أكون قادرا على تمكين مراقبتي الثانوية مع 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 (على الأقل الحجم واللون، وربما تحديث معدل أيضا)

نصائح أخرى

لم أحاول ذلك بنفسي، لكن يبدو أن الناس في هذا المنتدى لديك فكرة. الكود ليس ج #، لكنه مفهوم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top