Form1.cs
using BytescoutScreenCapturingLib;
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace ScreenCapture
{
public partial class Form1 : Form
{
#region Fields
private BytescoutScreenCapturingLib.Capturer _capturer;
private bool _converting = false;
private bool _paused = false;
#endregion
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Form Load Event Hanlde
/// </summary>
private void Form1_Load(object sender, EventArgs e)
{
try
{
_cmbQuality.DataSource = Enum.GetValues(typeof(VideoQualityProfileType));
_cmbQuality.SelectedIndex = 0;
_capturer = new BytescoutScreenCapturingLib.Capturer();
_capturer.RegistrationName = "demo";
_capturer.RegistrationKey = "demo";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/// <summary>
/// Handle screen capture button click
/// </summary>
private void _btnScreenCapture_Click(object sender, EventArgs e)
{
try
{
if (_converting)
{
if (_capturer.IsRunning)
{
_capturer.Stop();
}
StopCapturer();
_btnPauseScreenCapture.Visible = false;
}
else
{
_capturer.OutputWidth = (int)_numWidth.Value;
_capturer.OutputHeight = (int)_numHeight.Value;
_capturer.FPS = (float)_numFramerate.Value;
_capturer.SetVideoQualityProfile((BytescoutScreenCapturingLib.VideoQualityProfileType)_cmbQuality.SelectedItem);
_lblBitrate.Text = string.Format("Bitrate: {0}[kbps], Wmv Quality: {1}, MinQuantizer: {2}, MaxQuantizer: {3}",
_capturer.WMVVideoBitrate / 1000, _capturer.WmvVideoQuality,
_capturer.WebmMinQuantizer, _capturer.WebmMaxQuantizer);
_capturer.AnimateMouseClicks = true;
_capturer.AnimateMouseButtons = true;
_capturer.CapturingType = BytescoutScreenCapturingLib.CaptureAreaType.catScreen;
_capturer.OutputFileName = _txtOutputFile.Text;
_capturer.EncoderThreadsCount = (int)_numEncodingThreads.Value;
_capturer.AudioEnabled = false;
_capturer.Run();
_converting = true;
_btnScreenCapture.Text = "Stop screen capture";
_btnPauseScreenCapture.Visible = true;
_paused = false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/// <summary>
/// Pause screen capture
/// </summary>
private void _btnPauseScreenCapture_Click(object sender, EventArgs e)
{
if (_paused)
{
_capturer.Run();
_btnPauseScreenCapture.Text = "Pause Screen Capture";
_paused = false;
}
else
{
_capturer.Pause();
_btnPauseScreenCapture.Text = "Resume Screen Capture";
_paused = true;
}
}
/// <summary>
/// Stop Capture
/// </summary>
private void StopCapturer()
{
_converting = false;
_btnScreenCapture.Text = "Screen capture video";
// Open captured video
Process.Start(_txtOutputFile.Text);
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace ScreenCapture
{
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