Я хочу сделать снимок экрана и затем показать прямоугольник с точками мыши (так же, как 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-порядок окон, а затем получить прямоугольник определенной области.Заранее спасибо за помощь.