public override void CaptureSelectedWindowGetList() { tsddbCoreSelectedWindow.DropDownItems.Clear(); var windowsList = new WindowsList(); List<WindowInfo> windows = windowsList.GetVisibleWindowsList(); foreach (WindowInfo window in windows) { string title = window.Text.Truncate(50); ToolStripItem tsiSelectedWindow = tsddbCoreSelectedWindow.DropDownItems.Add(title); tsiSelectedWindow.Click += tsiSelectedWindow_Click; using (Icon icon = window.Icon) { if (icon != null) { tsiSelectedWindow.Image = icon.ToBitmap(); } } tsiSelectedWindow.Tag = window; } }
private async void PrepareCaptureMenuAsync(ToolStripMenuItem tsmiWindow, EventHandler handlerWindow, ToolStripMenuItem tsmiMonitor, EventHandler handlerMonitor) { tsmiWindow.DropDownItems.Clear(); WindowsList windowsList = new WindowsList(); List<WindowInfo> windows = await TaskEx.Run(() => windowsList.GetVisibleWindowsList()); if (windows != null) { foreach (WindowInfo window in windows) { string title = window.Text.Truncate(50); ToolStripItem tsi = tsmiWindow.DropDownItems.Add(title); tsi.Tag = window; tsi.Click += handlerWindow; try { using (Icon icon = window.Icon) { if (icon != null && icon.Width > 0 && icon.Height > 0) { tsi.Image = icon.ToBitmap(); } } } catch (Exception e) { DebugHelper.WriteException(e); } } } tsmiMonitor.DropDownItems.Clear(); Screen[] screens = Screen.AllScreens; for (int i = 0; i < screens.Length; i++) { Screen screen = screens[i]; string text = string.Format("{0}. {1}x{2}", i + 1, screen.Bounds.Width, screen.Bounds.Height); ToolStripItem tsi = tsmiMonitor.DropDownItems.Add(text); tsi.Tag = screen.Bounds; tsi.Click += handlerMonitor; } tsmiWindow.Invalidate(); tsmiMonitor.Invalidate(); }
private void PrepareWindowsMenu(ToolStripMenuItem tsmi, EventHandler handler) { tsmi.DropDownItems.Clear(); WindowsList windowsList = new WindowsList(); List<WindowInfo> windows = windowsList.GetVisibleWindowsList(); foreach (WindowInfo window in windows) { string title = window.Text.Truncate(50); ToolStripItem tsi = tsmi.DropDownItems.Add(title); tsi.Click += handler; try { using (Icon icon = window.Icon) { if (icon != null) { tsi.Image = icon.ToBitmap(); } } } catch (Exception e) { DebugHelper.WriteException(e); } tsi.Tag = window; } }