public static void Snip()
        {
            if (IsCapturing)
            {
                return;
            }

            if (Bitmap != null)
            {
                Bitmap.Dispose();
                GC.Collect();
            }
            IsCapturing = true;

            var screens = ScreenHelper.GetMonitorsInfo();

            forms = new SnippingTool[screens.Count];
            for (int i = 0; i < screens.Count; i++)
            {
                int horResolution = screens[i].HorizontalResolution;
                int verResolution = screens[i].VerticalResolution;
                int top           = screens[i].MonitorArea.Top;
                int left          = screens[i].MonitorArea.Left;
                var bitmap        = new Bitmap(horResolution, verResolution, PixelFormat.Format32bppPArgb);
                using (var g = Graphics.FromImage(bitmap))
                {
                    g.CopyFromScreen(left, top, 0, 0, bitmap.Size);
                }
                forms[i] = new SnippingTool(bitmap, left, top, horResolution, verResolution);
                forms[i].Show();
            }
        }
Exemplo n.º 2
0