예제 #1
0
        private void PrepareCaptureMenuAsync(ContextMenu tsmiWindow, RoutedEventHandler handlerWindow)
        {
            tsmiWindow.Items.Clear();

            WindowsList       windowsList = new WindowsList();
            List <WindowInfo> windows     = null;

            windows = windowsList.GetVisibleWindowsList();

            TaskEx.Run(() =>
            {
                windows = windowsList.GetVisibleWindowsList();
            }, () =>
            {
                if (windows != null)
                {
                    foreach (WindowInfo window in windows)
                    {
                        string title = window.Text.Truncate(40, "...");
                        MenuItem mi  = new MenuItem()
                        {
                            Header = title
                        };
                        mi.Tag    = window;
                        mi.Click += handlerWindow;
                        tsmiWindow.Items.Add(mi);
                    }
                }
            }
                       );
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        private void openDetailClient(Client client)
        {
            Boolean      isOpen = false;
            DetailClient dcTemp = null;

            foreach (ListClient lc in this.parent.ListWindowListClient)
            {
                foreach (DetailClient testClient in lc.windowsList)
                {
                    if (testClient.Client == client)
                    {
                        dcTemp = testClient;
                        isOpen = true;
                    }
                }
            }

            if (isOpen)
            {
                dcTemp.Activate();
            }
            else
            {
                DetailClient dc = new DetailClient(client, this);
                updateLastClientList(client);
                WindowsList.Add(dc);
                dc.Show();
                dc.Activate();
            }
        }
예제 #4
0
        public frmNavPrice(WindowsList windowsList)
        {
            InitializeComponent();


            this.windowsList        = windowsList;
            myIconButton1.MoveColor = Color.Red;
        }
예제 #5
0
 /// <inheritdoc/>
 public void Reset()
 {
     DesktopWindow = null;
     WindowsList.Clear();
     _windowsStoreApps.Clear();
     _windowHandlesToIgnore.Clear();
     _refreshDesktopWindowOnly = false;
 }
예제 #6
0
        private void PrepareCaptureMenuAsync(ToolStripMenuItem tsmiWindow, EventHandler handlerWindow, ToolStripMenuItem tsmiMonitor, EventHandler handlerMonitor)
        {
            tsmiWindow.DropDownItems.Clear();

            WindowsList       windowsList = new WindowsList();
            List <WindowInfo> windows     = null;

            TaskEx.Run(() =>
            {
                windows = windowsList.GetVisibleWindowsList();
            },
                       () =>
            {
                if (windows != null)
                {
                    foreach (WindowInfo window in windows)
                    {
                        try
                        {
                            string title      = window.Text.Truncate(50);
                            ToolStripItem tsi = tsmiWindow.DropDownItems.Add(title);
                            tsi.Tag           = window;
                            tsi.Click        += handlerWindow;

                            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 ExecuteAddWindowToIgnoreListCommand(Window window)
        {
            if (window == null || window.Handle == IntPtr.Zero)
            {
                return;
            }

            var collection = IgnoredApplications;
            var ignoredApp = new IgnoredApplication
            {
                ApplicationIdentifier = window.ApplicationIdentifier
            };

            if (window.IsWindowsStoreApp)
            {
                ignoredApp.Icon = window.Icon;
            }
            else if (File.Exists(window.ApplicationIdentifier))
            {
                var icon = Icon.ExtractAssociatedIcon(window.ApplicationIdentifier)?.ToBitmap();

                if (icon != null)
                {
                    ignoredApp.Icon = DataHelper.BitmapToBitmapImage(new Bitmap(icon, Consts.WindowsIconsSize, Consts.WindowsIconsSize), Consts.WindowsIconsSize);
                }
                else
                {
                    ignoredApp.Icon = window.Icon;
                }
            }
            else
            {
                ignoredApp.Icon = window.Icon;
            }

            if (window.IsWindowsStoreApp)
            {
                ignoredApp.DisplayName = window.ApplicationIdentifier.Split('_').First();
            }
            else
            {
                ignoredApp.DisplayName = Path.GetFileNameWithoutExtension(window.ApplicationIdentifier);
            }

            if (collection.Any(app => app.DisplayName == ignoredApp.DisplayName))
            {
                return;
            }

            collection.Add(ignoredApp);
            IgnoredApplications = collection;

            WindowsList.Remove(window);
            Logger.Instance.Information($"The application '{ignoredApp.ApplicationIdentifier}' has been added to the ignored app list.");
        }
예제 #8
0
        /// <summary>
        /// Refresh the list of <see cref="Window"/>
        /// </summary>
        /// <param name="refreshDesktopWindowOnly">Defines whether we must only refresh the desktop window information.</param>
        internal void RefreshWindows(bool refreshDesktopWindowOnly = false)
        {
            if (!refreshDesktopWindowOnly)
            {
                WindowsList.Clear();
                WindowsListChanged?.Invoke(this, new EventArgs());
            }

            _refreshDesktopWindowOnly = refreshDesktopWindowOnly;
            Requires.VerifySucceeded(NativeMethods.EnumWindows(EnumWindowsCallback, 0));
        }
예제 #9
0
        protected override void tsFuncWindowList_Click(object sender, EventArgs e)
        {
            base.tsFuncWindowList_Click(sender, e);
            WindowsListFuncClass pamaClass    = GetWinListParam();
            WindowsList          WinExistList = new WindowsList(WinList, pamaClass);

            WinExistList.BindWindowInfors();

            WinExistList.ShowDialog(this);
            GetWindowShortCuts().ForEach(x => x.Checked = false);
            ActiveWindowByShortCut();
        }
 static double GetStackHeight()
 {
     using (var helper = PersistentMemoryMapping.GetHelper())
     {
         var list = helper.Read <List <MyRectangular> >();
         if (list != null)
         {
             list = list.Where(t => WindowsList.IsWindowExisted(t.Handle)).ToList();
             double topExisted = list.Select(t => t.Height).Sum() + list.Select(t => t.Space).Sum();
             return(topExisted);
         }
         return(0);
     }
 }
예제 #11
0
        /// <summary>
        /// ferme toutes les fiches clients ouvertes dont la checkbox "garder ouvert" n'est pas cochée
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button8_Click(object sender, EventArgs e)
        {
            List <DetailClient> temp = new List <DetailClient>();

            foreach (ListClient lc in parent.ListWindowListClient)
            {
                foreach (DetailClient dc in lc.WindowsList)
                {
                    if (!dc.CbKeepOpen.Checked)
                    {
                        temp.Add(dc);
                    }
                }
            }
            foreach (DetailClient dc in temp)
            {
                dc.Close();
                WindowsList.Remove(dc);
            }
        }
예제 #12
0
        /// <summary>
        /// Callback used everytime a window is detected when we call EnumWindows
        /// </summary>
        /// <param name="windowHandle">The handle of the window</param>
        /// <param name="lParam">The application-defined value given in EnumWindows or EnumDesktopWindows.</param>
        /// <returns>True to continue to search for windows</returns>
        private bool EnumWindowsCallback(IntPtr windowHandle, int lParam)
        {
            // Check if the window is visible, has a border or not, has a title, is the main window of the app (so we ignore the child windows and dialog box)
            var windowStyle         = NativeMethods.GetWindowLongA(windowHandle, Consts.GWL_STYLE);
            var isApplicationWindow = (windowStyle & Consts.TARGETWINDOW) == Consts.TARGETWINDOW;
            var isDesktopWindow     = windowHandle == NativeMethods.GetShellWindow();
            var isVisible           = NativeMethods.IsWindowVisible(windowHandle) && NativeMethods.IsWindow(windowHandle);
            var isChainVisible      = IsWindowChainVisible(windowHandle);
            var isInIgnoreList      = _windowHandlesToIgnore.Contains(windowHandle);

            if (!isVisible || !isChainVisible || isInIgnoreList || (!isApplicationWindow && !isDesktopWindow) || (_refreshDesktopWindowOnly && !isDesktopWindow))
            {
                return(true); //continue enumeration
            }

            if (isDesktopWindow)
            {
                DesktopWindow = new Window(windowHandle, string.Empty, null, string.Empty, null, false);
                return(true); //continue enumeration
            }

            var stringBuilder = new StringBuilder(256);

            NativeMethods.GetWindowText(windowHandle, stringBuilder, stringBuilder.Capacity);

            if (string.IsNullOrEmpty(stringBuilder.ToString()))
            {
                return(true); //continue enumeration
            }

            var window = GetWindowInformation(windowHandle);

            if (window != null)
            {
                WindowsList.Add(window);
                WindowsListChanged?.Invoke(this, new EventArgs());
            }

            return(true); //continue enumeration
        }
예제 #13
0
        private void UpdateWindowListMenu()
        {
            cmsWindowList.Items.Clear();

            WindowsList       windowsList = new WindowsList(Handle);
            List <WindowInfo> windows     = windowsList.GetVisibleWindowsList();

            if (windows != null && windows.Count > 0)
            {
                List <ToolStripMenuItem> items = new List <ToolStripMenuItem>();

                foreach (WindowInfo window in windows)
                {
                    try
                    {
                        string            title      = window.Text;
                        string            shortTitle = title.Truncate(50, "...");
                        ToolStripMenuItem tsmi       = new ToolStripMenuItem(shortTitle);
                        tsmi.Click += (sender, e) => txtWindowTitle.Text = title;

                        using (Icon icon = window.Icon)
                        {
                            if (icon != null && icon.Width > 0 && icon.Height > 0)
                            {
                                tsmi.Image = icon.ToBitmap();
                            }
                        }

                        items.Add(tsmi);
                    }
                    catch (Exception e)
                    {
                        DebugHelper.WriteException(e);
                    }
                }

                cmsWindowList.Items.AddRange(items.OrderBy(x => x.Text).ToArray());
            }
        }
        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;
            }
        }
예제 #15
0
        public frmNavB2B(WindowsList windowsList)
        {
            InitializeComponent();

            this.windowsList = windowsList;
        }
예제 #16
0
 public frmNavConCenter(WindowsList windowsList)
 {
     InitializeComponent();
     this.windowsList = windowsList;
 }
예제 #17
0
        public frmNavSaleProcurement(WindowsList windowsList)
        {
            InitializeComponent();

            this.windowsList = windowsList;
        }