画面キャプチャーアプリとか作りたい人向けです。画面全体の画面イメージをキャプチャーする方法。
以下にサンプルコードを示す。
public class Window { private const int SRCCOPY = 0xCC0020; [DllImport("coredll.dll")] private static extern IntPtr GetDC(IntPtr hwnd); [DllImport("coredll.dll")] private static extern int BitBlt(IntPtr hDestDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, int dwRop); [DllImport("coredll.dll")] private static extern IntPtr ReleaseDC(IntPtr hwnd, IntPtr hdc); /// <summary> /// プライマリ ディスプレイのイメージを取得する /// </summary> /// <returns></returns> public static Bitmap CaptureScreen() { Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); IntPtr disDC = GetDC(IntPtr.Zero); using (Graphics g = Graphics.FromImage(bmp)) { IntPtr hDC = g.GetHdc(); BitBlt(hDC, 0, 0, bmp.Width, bmp.Height, disDC, 0, 0, SRCCOPY); g.ReleaseHdc(hDC); } ReleaseDC(IntPtr.Zero, disDC); return bmp; } }