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); } }
private static int GetMonitor(int monitorIndex) { var monitorArray = DisplayMonitor.EnumerateMonitors(); if ((monitorArray.Length - 1) >= monitorIndex) { return((monitorArray[monitorIndex] != null) ? monitorIndex : 0); } return(0); }
private void checkMonitor() { DisplayMonitor[] monitors = DisplayMonitor.EnumerateMonitors(); if (c_monitor < monitors.Length) { if (monitors[c_monitor] != null) { return; } } c_monitor = 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"); }
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); }