Beispiel #1
0
        private static void TrayIconUpdateMonitorIndexes()
        {
            int dropMenuCount = ((ToolStripMenuItem)TrayMenuIcons.Items[0]).DropDownItems.Count;

            if (dropMenuCount > 0)
            {
                int count = 0;
                while (count < dropMenuCount)
                {
                    try
                    {
                        ((ToolStripMenuItem)TrayMenuIcons.Items[0]).DropDownItems.RemoveAt(0);
                    }
                    catch (Exception) { }

                    count++;
                }
            }

            for (int i = 0; i < DisplayMonitor.EnumerateMonitors().Length; i++)
            {
                ((ToolStripMenuItem)TrayMenuIcons.Items[0]).DropDownItems.Add($"#{i}",
                                                                              Resources.television__arrow.ToBitmap(), OnChangeMonitor);
            }
        }
Beispiel #2
0
        private static int GetMonitor(int monitorIndex)
        {
            var monitorArray = DisplayMonitor.EnumerateMonitors();

            if ((monitorArray.Length - 1) >= monitorIndex)
            {
                return((monitorArray[monitorIndex] != null) ? monitorIndex : 0);
            }
            return(0);
        }
Beispiel #3
0
 private void checkMonitor()
 {
     DisplayMonitor[] monitors = DisplayMonitor.EnumerateMonitors();
     if (c_monitor < monitors.Length)
     {
         if (monitors[c_monitor] != null)
         {
             return;
         }
     }
     c_monitor = 0;
 }
Beispiel #4
0
        public SetupForm()
        {
            InitializeComponent();

            // Automatically set the monitor index

            for (int i = 0; i < DisplayMonitor.EnumerateMonitors().Length; i++)
            {
                cbMonitorIndex.Items.Add(i);
            }

            LoadSettings();

            lblVersion.Text = Assembly.GetExecutingAssembly().GetName().Version.ToString();
        }
        public SetupForm()
        {
            LOG.Info("Instantiating SetupForm");
            InitializeComponent();

            // Automatically set the monitor index
            for (int i = 0; i < DisplayMonitor.EnumerateMonitors().Length; i++)
            {
                cbMonitorIndex.Items.Add(i);
            }

            LoadSettings();

            tbHelp.Text     = Resources.SetupFormHelp;
            lblVersion.Text = Assembly.GetExecutingAssembly().GetName().Version.ToString();
            LOG.Info("SetupForm Instantiated");
        }
Beispiel #6
0
        private static int GetMonitorIndex(int monitorIndex)
        {
            var monitorArray = DisplayMonitor.EnumerateMonitors();

            // For anything other than index 0 (first screen) we do a lookup in monitor array
            if (monitorIndex == 0)
            {
                LOG.Info($"Monitor index is 0, skipping lookup and using ==> device: {monitorArray[monitorIndex].DeviceName} | IsPrimary: {monitorArray[monitorIndex].IsPrimary} | Handle: {monitorArray[monitorIndex].Handle}");
                return(monitorIndex);
            }

            // If we have only 1 monitor and monitor index is set higher fallback to first monitor
            if (monitorArray.Count() == 1 && monitorIndex > 0)
            {
                return(0);
            }

            if (monitorArray.Any())
            {
                foreach (var monitor in monitorArray)
                {
                    LOG.Info($"Found ==> device: {monitor.DeviceName} | IsPrimary: {monitor.IsPrimary} | Handle: {monitor.Handle}");
                    var  monitorShortname     = monitor.DeviceName.Replace(@"\\.\DISPLAY", string.Empty);
                    var  dmMonitorIndex       = 0;
                    bool isdValidMonitorIndex = int.TryParse(monitorShortname, out dmMonitorIndex);
                    if (isdValidMonitorIndex)
                    {
                        if (dmMonitorIndex == monitorIndex)
                        {
                            LOG.Info($"Using ==> device: {monitor.DeviceName} | IsPrimary: {monitor.IsPrimary} | Handle: {monitor.Handle}");
                            return(dmMonitorIndex);
                        }
                    }
                }
            }

            return(monitorIndex);
        }