Набросал - работает.
На форму кидаем PictureBox. Называем его pictureBox, и кнопку ButtonTake
Связываем щелчок с ButtonTakeClick.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
namespace Screen
{
/// Description of MainForm.
public partial class MainForm : Form
{
[DllImport("gdi32.dll")]
private static extern IntPtr CreateDC(string strDriver, string strDevice, string strOutput, IntPtr pData);
[DllImport("gdi32.dll")]
private static extern bool DeleteDC(IntPtr hdc);
[DllImport("gdi32.dll")]
private static extern IntPtr CreateCompatibleDC(IntPtr hdc);
[DllImport("gdi32.dll")]
private static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
[DllImport("gdi32.dll")]
private static extern IntPtr CreateCompatibleBitmap (IntPtr hdc, int nWidth, int nHeight);
[DllImport("gdi32.dll")]
private static extern IntPtr SelectObject(IntPtr hdc, IntPtr hObject);
[DllImport("gdi32.dll")]
private static extern bool BitBlt(IntPtr hDestDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, int dwRop);
private const int SRCCOPY = 0x0CC0020;
private const int HORZRES = 8;
private const int VERTRES = 10;
public MainForm()
{
InitializeComponent();
}
void ButtonTakeClick(object sender, EventArgs e)
{
IntPtr hdcScreen = CreateDC("DISPLAY", "", "", IntPtr.Zero);
IntPtr hdcCompatible = CreateCompatibleDC(hdcScreen);
int height = GetDeviceCaps(hdcScreen, VERTRES);
int width = GetDeviceCaps(hdcScreen, HORZRES);
IntPtr hbmScreen = CreateCompatibleBitmap(hdcScreen, width, height);
SelectObject(hdcCompatible, hbmScreen);
Hide();
Thread.Sleep(500); //На всякий, чтобы окна успели отрисоваться
BitBlt(hdcCompatible, 0, 0, width, height, hdcScreen, 0, 0, SRCCOPY);
Show();
pictureBox.Image = Bitmap.FromHbitmap(hbmScreen);
}
}
}
Screen - собственно этот пример, который сделал скрин среды и кода который был под формой =)

Сам импортировал, а чет поторопился немного.