Form1.cs
using System.Windows.Forms;
using BytescoutScreenCapturingLib;
// NOTE: if you are getting error like "invalid image" related to loading the SDK's dll then
// try to do the following:
// 1) remove the reference to the SDK by View - Solution Explorer
// then click on References, select Bytescout... reference name and right-click it and select Remove
// 2) To re-add click on the menu: Project - Add Reference
// 3) In "Add Reference" dialog switch to "COM" tab and find "BytescoutScreenCapturing 1.0 Type Library"
// 4) Select it and click "Add"
// 5) Recompile the application
// Note: if you need to run on both x64 and x86 then please make sure you have set "Embed Interop Types" to True for this reference
namespace ScreenCapturingExample
{
public partial class Form1 : Form
{
private Capturer _capturer = null;
private int _screencastCount = 0;
private int _screenshotCount = 0;
public Form1()
{
InitializeComponent();
// Create and setup Capturer object:
_capturer = new Capturer();
// Capture the full screen
_capturer.CapturingType = CaptureAreaType.catScreen;
// Set movie width and height to the current monitor dimensions
_capturer.OutputWidth = _capturer.MonitorWidth;
_capturer.OutputHeight = _capturer.MonitorHeight;
// Setup screenshots
_capturer.ScreenshotImageFormat = ScreenshotImageType.ssitPng; // Save images in PNG format
_capturer.ScreenshotOutputFolder = "\\."; // Save to the current folder
_capturer.ScreenshotSavingType = ScreenshotSavingType.ssstManual; // Take screenshots manually
}
private void buttonStart_Click(object sender, System.EventArgs e)
{
string fileName = string.Format("screencast{0}.wmv", ++_screencastCount);
// Start screen recording
_capturer.OutputFileName = fileName;
_capturer.Run();
buttonStart.Enabled = false;
buttonStop.Enabled = true;
buttonScreenshot.Enabled = true;
}
private void buttonStop_Click(object sender, System.EventArgs e)
{
// Stop recording
_capturer.Stop();
buttonStart.Enabled = true;
buttonStop.Enabled = false;
buttonScreenshot.Enabled = false;
MessageBox.Show("Screencast saved to " + _capturer.OutputFileName, ProductName);
}
private void buttonScreenshot_Click(object sender, System.EventArgs e)
{
string fileName = string.Format("screenshot{0}.png", ++_screenshotCount);
// Take screenshot during the recording
_capturer.TakeScreenshot(fileName);
MessageBox.Show("Screenshot saved to " + fileName, ProductName);
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace ScreenCapturingExample
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Click here to get your Free Trial version of the SDK