Определить окно при перемещении мыши и нарисовать / показать прямоугольник - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу сделать снимок экрана и затем показать прямоугольник с точками мыши (так же, как shareX).Я использую этот код, чтобы получить окно переднего плана, а затем сделать прямоугольник:

        IntPtr activeWindow = GetForegroundWindow();

        List<String> strListProcesses = new List<string>();
        foreach (Process process in Process.GetProcesses())
        {
                if (activeWindow == process.MainWindowHandle)
                {

                        RECT t21;
                        GetWindowRect(activeWindow , out t21);
                        this.Dispatcher.Invoke((Action)(() =>
                        {
                            rectangle.Stroke = Brushes.Red;
                            Canvas.SetLeft(rectangle, t21.Left);
                            Canvas.SetTop(rectangle, t21.Top);
                            rectangle.Width = t21.Right - t21.Left;
                            rectangle.Height = t21.Bottom - t21.Top;
                            rectangle.Margin = new 
                                       Thickness(t21.Left,t21.Top- 8, 0, 0);
                            rectangle.Visibility = Visibility.Visible;
                        }));
                    }}

Я хочу, чтобы он отображал прямоугольники в режиме реального времени так же, как ShareX, CloudShare и т. Д. Мой текущий инструмент работает нормально, ониспользуется для захвата экрана, а затем пользователь может редактировать его.Теперь я хочу добавить эту функцию.Я изо всех сил пытался найти решение, но все тщетно, потому что я не понимаю, как определить z-порядок окон, а затем получить прямоугольник определенной области.Заранее спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...