捕获屏幕:未处理的异常:System.ArgumentException:参数无效

时间:2017-12-19 23:19:18

标签: c#

我写了一个小程序,扫描屏幕上的某种颜色。我在捕捉屏幕方面遇到了问题。它工作了一段时间但最终崩溃了:this message。我尝试将变量从局部更改为全局但我得到了同样的错误。这是我的方法:

    static IntPtr hSrcDc;
    static IntPtr hDc;
    static Bitmap screenCopy;

    static Bitmap Capture(Rectangle r)
    {
        screenCopy = new Bitmap(r.Width, r.Height, PixelFormat.Format24bppRgb);

        using (Graphics gdest = Graphics.FromImage(screenCopy))
        {
            using (Graphics gsrc = Graphics.FromHwnd(IntPtr.Zero))
            {
                hSrcDc = gsrc.GetHdc();
                hDc = gdest.GetHdc();
                BitBlt(hDc, 0, 0, r.Width, r.Height, hSrcDc, r.X, r.Y, (int)CopyPixelOperation.SourceCopy);

                gdest.ReleaseHdc();
                gsrc.ReleaseHdc();
            }
        }
        return screenCopy;
    }

0 个答案:

没有答案