the idea from your problem takes multiple screen capture every constant time period and compare the images which taken pixel by pixel to select the part of screen was changed and captured it
Bitmap image1;
Bitmap image2;
Graphics gr;
private void Captures_Images()
{
Bitmap image1 = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics gr = Graphics.FromImage(image1);
gr.CopyFromScreen(0, 0, 0, 0, image1.Size);
gr = null;
pictureBox1.Image = image1;
Bitmap image2 = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
gr = Graphics.FromImage(image2);
gr.CopyFromScreen(0, 0, 0, 0, image2.Size);
gr = null;
pictureBox1.Image = image2;
}
void Compare_Images(Bitmap b1,Bitmap b2)
{
int width = b1.Width;
int height = b1.Height;
for (int w = 0; w < width; w++)
{
for (int h = 0; h < height; h++)
{
if ((b1.GetPixel(w, h).A != b2.GetPixel(w, h).A) ||
(b1.GetPixel(w, h).R != b2.GetPixel(w, h).R) ||
(b1.GetPixel(w, h).G != b2.GetPixel(w, h).G) ||
(b1.GetPixel(w, h).B != b2.GetPixel(w, h).B))
{
}
}
}
}