public void AddWindow(IntPtr handle)
        {
            WindowService.GetWindowRect(handle, out var rect);
            WindowRectangle windowRectangle = new WindowRectangle(
                new Point(rect.Left, rect.Y),
                rect.Width - rect.X, rect.Height - rect.Y);

            if (!_windows.ContainsKey(handle))
            {
                _windows.Add(handle, windowRectangle);
            }
            else
            {
                _windows[handle] = windowRectangle;
            }

            if (!_profiles.ContainsKey(handle))
            {
                _profiles.Add(handle, new Profile(_user.ApiKey));
            }
            else
            {
                _profiles[handle] = new Profile(_user.ApiKey);
            }

            if (!_errors.ContainsKey(handle))
            {
                _errors.Add(handle, false);
            }
            else
            {
                _errors[handle] = false;
            }
        }
        private void PerformClick(WindowRectangle window, Click click,
                                  bool needDelay = true)
        {
            if (window == null)
            {
                throw new ArgumentNullException(nameof(window));
            }

            if (click == null)
            {
                throw new ArgumentNullException(nameof(click));
            }

            Point point = window.GetScreenPoint(click.Position);

            VirtualMouse.SendLeftClick(point);

            if (needDelay)
            {
                Thread.Sleep(click.Delay);
            }
        }