private static void Capture(ScreenCaptureSource screenCaptureSource, Action <Bitmap> action) { switch (screenCaptureSource) { case ScreenCaptureSource.ActiveWindow: CaptureActiveWindow(action); break; case ScreenCaptureSource.ActiveScreen: CaptureScreen(Screen.FromHandle(WinApi.GetForegroundWindow()), action); break; case ScreenCaptureSource.PrimaryScreen: CaptureScreen(Screen.PrimaryScreen, action); break; case ScreenCaptureSource.AllScreens: CaptureAllScreens(action); break; default: throw new NotImplementedException(); } }