示例#1
0
        private void AddMonitors()
        {
            // Dispose and remove any old monitors
            foreach (Monitor m in monitorCollection)
            {
                m.Dispose();
            }
            monitorCollection.Clear();

            var @delegate = new NativeMethods.MonitorEnumDelegate(MonitorEnum);

            NativeMethods.EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, @delegate, IntPtr.Zero);
            Log("Number of physical monitors: {0}", monitorCollection.Count);

            foreach (Monitor monitor in monitorCollection)
            {
                Log("-----");
                Log(monitor.Name);
                Log("Index: {0}", monitor.Index);
                Log("Physical: {0}", monitor.HPhysicalMonitor);


                // Only add monitor if DDC is supported
                if (monitor.Brightness.IsSupported)
                {
                    BrightnessMenuItem newMenuItem = new BrightnessMenuItem();
                    newMenuItem.MonitorTrackBarControl.Monitor = monitor;
                    newMenuItem.MonitorTrackBarControl.OnSetBrightnessFailed += MonitorTrackBarControl_OnSetBrightnessFailed;
                    contextMenu.Items.Insert(0, newMenuItem);
                    monitor.Tag = newMenuItem;
                }
            }
        }
示例#2
0
        private void UpdateMonitorList()
        {
            MonitorList.Clear();

            foreach (Screen screen in Screen.AllScreens)
            {
                DisplayConfiguration.PHYSICAL_MONITOR mon = DisplayConfiguration.GetPhysicalMonitors(DisplayConfiguration.GetMonitorByBounds(screen.Bounds))[0];

                string Name = screen.DeviceFriendlyName();

                if (String.IsNullOrEmpty(Name))
                {
                    Name = "Generic Monitor";
                }

                DisplayConfiguration.MonitorExtremums MonExtrs;

                try
                {
                    MonExtrs = DisplayConfiguration.GetMonitorExtremums(mon);
                }
                catch
                {
                    MonExtrs = new DisplayConfiguration.MonitorExtremums()
                    {
                        Min = 0, Max = 0
                    };
                }

                MonitorList.Add(new MONITOR(Name, mon, MonExtrs.Min, MonExtrs.Max));
            }

            Monitor_List_Combobox.ItemsSource  = MonitorList;
            Monitor_List_Combobox.SelectedItem = MonitorList[0];
            CurrentMonitor = MonitorList[0];
        }