using Leadtools;
using Leadtools.Codecs;
using Leadtools.ScreenCapture;
void scEngine_CaptureInformation(object sender, ScreenCaptureInformationEventArgs e)
{
// Make sure that the image was captured successfully
Debug.Assert(e.Image != null);
// Define codecs class object to save the image
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
// Save the resulted Image
codecs.Save(e.Image, Path.Combine(LEAD_VARS.ImagesDir, "Out_CapturedImage.bmp"), RasterImageFormat.Bmp, 24);
// NOTE: e.Information is a ScreenCaptureInformation structure filled with information
// about the captured image, this information can be used here
// Display a MessageBox with the bounds of the capture area
MessageBox.Show("Captured Area Bounds:\n" +
"Top:" + e.Information.Area.Top.ToString() + "\n" +
"Left:" + e.Information.Area.Left.ToString() + "\n" +
"Right:" + e.Information.Area.Right.ToString() + "\n" +
"Bottom:" + e.Information.Area.Bottom.ToString());
// everything worked fine
e.Cancel = false;
}
public void ScreenCaptureExceptionExample()
{
ScreenCaptureEngine.Startup();
ScreenCaptureEngine scEngine = new ScreenCaptureEngine();
ScreenCaptureInformation captureInformation = null;
scEngine.CaptureInformation += new EventHandler<ScreenCaptureInformationEventArgs>(scEngine_CaptureInformation);
try
{
MessageBox.Show("After you close this message box,\npress F11 to capture the wallpaper.");
RasterImage image = scEngine.CaptureWallpaper(captureInformation);
}
catch (ScreenCaptureException ex)
{
//LEADTOOLS ScreenCapture Error
MessageBox.Show(string.Format("Could not capture wallpaper.{0}ScreenCapture error code: {1}{0}Message: {2}", Environment.NewLine, ex.Code, ex.Message));
}
catch (Exception ex)
{
// Other errors
MessageBox.Show(string.Format("Could not capture wallpaper.{0}{1}", Environment.NewLine, ex.Message));
}
ScreenCaptureEngine.Shutdown();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}