相关疑难解决方法(0)

截图方法生成黑色图像

在 c# 中使用 control.drawtobitmap 失败后,我的第二个选择是截取桌面的屏幕截图并裁剪出所需的部分。一旦我切换用户帐户,我的打嗝就会出现,虽然程序不会崩溃,但一旦用户切换,程序只会生成纯黑色图像。

我使用此代码作为参考: WebBrowser.DrawToBitmap() 或其他方法?

我想这在逻辑上是有道理的,因为这将有助于 Windows 节省资源。

在我的情况下,我有哪些选择/解决方案?

编辑 1 对测试代码进行了修改:

        int c = 0;
        while (true)
        {
            try
            {
                c++;
                Rectangle formBounds = this.Bounds;
                Bitmap bmp = new Bitmap(formBounds.Width, formBounds.Height);
                using (Graphics g = Graphics.FromImage(bmp))
                    g.CopyFromScreen(formBounds.Location, Point.Empty, formBounds.Size);
                bmp.Save("picture" + c.ToString() + ".jpg");
                Thread.Sleep(5000);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Run Code Online (Sandbox Code Playgroud)

这在用户帐户上运行良好,但是一旦我切换用户,它就会返回异常:句柄无效。

有任何想法吗?

编辑2:

DrawToBitmap 中的错误不是完全随机的...如果我使用您提供的代码:

Bitmap bmp = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
this.DrawToBitmap(bmp, this.ClientRectangle);
bmp.Save(".\\picture.jpg");
Run Code Online (Sandbox Code Playgroud)

它完美地工作,例如:http : //oi61.tinypic.com/1z23ynp.jpg

但是,当我右键单击 Web 浏览器控件时,DrawToBitmap 将返回一个空白图像。

示例: …

c# browser screenshot bitmap windows-7

2
推荐指数
1
解决办法
7097
查看次数

标签 统计

bitmap ×1

browser ×1

c# ×1

screenshot ×1

windows-7 ×1