public static void CaptureRegion(TaskSettings taskSettings, bool autoHideForm = true) { RegionCaptureMode mode; if (taskSettings.AdvancedSettings.RegionCaptureDisableAnnotation) { mode = RegionCaptureMode.Default; } else { mode = RegionCaptureMode.Annotation; } RegionCaptureForm form = new RegionCaptureForm(mode); DoCapture(() => { Image img = null; try { form.Config = taskSettings.CaptureSettingsReference.SurfaceOptions; form.Prepare(TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen()); form.ShowDialog(); img = form.GetResultImage(); if (img != null) { if (form.Result == RegionResult.Region && taskSettings.UploadSettings.RegionCaptureUseWindowPattern) { WindowInfo windowInfo = form.GetWindowInfo(); if (windowInfo != null) { img.Tag = new ImageTag { WindowTitle = windowInfo.Text, ProcessName = windowInfo.ProcessName }; } } lastRegionCaptureType = LastRegionCaptureType.Default; } } finally { if (form != null) { form.Dispose(); } } return(img); }, CaptureType.Region, taskSettings, autoHideForm); }
protected ImageInfo ExecuteRegionCapture(TaskSettings taskSettings) { ImageInfo imageInfo = new ImageInfo(); RegionCaptureMode mode; if (taskSettings.AdvancedSettings.RegionCaptureDisableAnnotation) { mode = RegionCaptureMode.Default; } else { mode = RegionCaptureMode.Annotation; } RegionCaptureForm form = new RegionCaptureForm(mode); try { form.Config = taskSettings.CaptureSettingsReference.SurfaceOptions; Image img = TaskHelpers.GetScreenshot(taskSettings).CaptureFullscreen(); form.Prepare(img); form.ShowDialog(); imageInfo.Image = form.GetResultImage(); if (imageInfo.Image != null) { if (form.Result == RegionResult.Region && taskSettings.UploadSettings.RegionCaptureUseWindowPattern) { WindowInfo windowInfo = form.GetWindowInfo(); if (windowInfo != null) { imageInfo.WindowTitle = windowInfo.Text; imageInfo.ProcessName = windowInfo.ProcessName; } } lastRegionCaptureType = RegionCaptureType.Default; } } finally { if (form != null) { form.Dispose(); } } return(imageInfo); }
protected ImageInfo ExecuteRegionCapture(TaskSettings taskSettings) { ImageInfo imageInfo = new ImageInfo(); RegionCaptureMode mode; if (taskSettings.AdvancedSettings.RegionCaptureDisableAnnotation) { mode = RegionCaptureMode.Default; } else { mode = RegionCaptureMode.Annotation; } RegionCaptureForm form = new RegionCaptureForm(mode); try { form.Config = taskSettings.CaptureSettingsReference.SurfaceOptions; Screenshot screenshot = TaskHelpers.GetScreenshot(taskSettings); screenshot.CaptureCursor = false; Image img = screenshot.CaptureFullscreen(); CursorData cursorData = null; try { if (taskSettings.CaptureSettings.ShowCursor) { cursorData = new CursorData(); } form.Prepare(img); if (cursorData != null && cursorData.IsValid) { form.AddCursor(cursorData.Handle, cursorData.Position); } } finally { if (cursorData != null) { cursorData.Dispose(); } } form.ShowDialog(); imageInfo.Image = form.GetResultImage(); if (imageInfo.Image != null) { if (form.IsAnnotated) { AllowAnnotation = false; } if (form.Result == RegionResult.Region && taskSettings.UploadSettings.RegionCaptureUseWindowPattern) { WindowInfo windowInfo = form.GetWindowInfo(); imageInfo.UpdateInfo(windowInfo); } lastRegionCaptureType = RegionCaptureType.Default; } } finally { if (form != null) { form.Dispose(); } } return(imageInfo); }