internal void StopCapture(bool cancelCapture = false) { Debug.WriteLine("StopCapture: " + cancelCapture); if (!IsMouseClickCapturing) { return; } CaptureTimer.Dispose(); IsMouseClickCapturing = false; Overlay?.Close(); //WindowUtilities.DoEvents(); //Point pt = GetMousePosition(); //CurWindow = new WindowInfo(ScreenCapture.WindowFromPoint(new System.Drawing.Point((int)pt.X, (int)pt.Y))); Desktop.Topmost = true; Desktop.Activate(); WindowUtilities.DoEvents(); if (LastWindow != null && !cancelCapture) { var img = ScreenCapture.CaptureWindow(CurWindow.Rect); CapturedBitmap = new Bitmap(img); //CapturedBitmap = ScreenCapture.CaptureWindowBitmap(CurWindow.Handle) as Bitmap; Desktop.Close(); if (CapturedBitmap != null) { ImageCaptured.Source = ScreenCapture.BitmapToBitmapSource(CapturedBitmap); StatusText.Text = "Image capture from Screen: " + $"{CapturedBitmap.Width}x{CapturedBitmap.Height}"; ScreenCaptureForm_SizeChanged(this, null); } else { StatusText.Text = "Image capture failed."; } } //Desktop.Topmost = false; Desktop?.Close(); //if (ExternalWindow != null) //{ // ExternalWindow.Show(); // ExternalWindow.Activate(); //} if (cancelCapture) { CancelCapture(true); } else { Show(); Activate(); } }
internal void StopCapture(bool cancelCapture = false) { if (!IsMouseClickCapturing) { return; } IsMouseClickCapturing = false; Overlay?.Close(); WindowUtilities.DoEvents(); Desktop.Topmost = true; Desktop.Activate(); WindowUtilities.DoEvents(); if (LastWindow != null) { var img = ScreenCapture.CaptureWindow(CurWindow.Rect); CapturedBitmap = new Bitmap(img); //ScreenCapture.CaptureWindowBitmap(CurWindow.Handle) as Bitmap; Desktop.Close(); if (CapturedBitmap != null) { ImageCaptured.Source = ScreenCapture.BitmapToBitmapSource(CapturedBitmap); StatusText.Text = "Image capture from Screen: " + $"{CapturedBitmap.Width}x{CapturedBitmap.Height}"; ScreenCaptureForm_SizeChanged(this, null); } else { StatusText.Text = "Image capture failed."; } } //Desktop.Topmost = false; Desktop?.Close(); if (ExternalWindow != null) { ExternalWindow.Show(); ExternalWindow.Activate(); } if (cancelCapture) { CancelCapture(); } else { Show(); Activate(); } }