Сделайте скриншоты WebBrowser Control - PullRequest
6 голосов
/ 10 сентября 2010

Может кто-нибудь поделиться кодом, чтобы сделать снимки экрана веб-браузера и сохранить его по заданному пути.

Я работаю с VS 2008.Net 3.5.

Ответы [ 2 ]

4 голосов
/ 10 сентября 2010

Вы можете использовать Control.DrawToBitmap () , даже если он скрыт от Intellisense в VisualStudio.WebBrowser по-прежнему наследуется от базового класса Control, поэтому этот метод существует.Но то, что я сделал, - это создал MenuStrip с MenuItem, который я использовал для проверки этого (это в основном просто стандартное событие щелчка), и вместо этого создал графический объект и скопировал часть экрана, используя правильные кординаты.Единственное, что вам действительно нужно настроить, - это имя элемента управления WebBrowser и строка, которая фактически сохраняет изображение.

private void copyToolStripMenuItem_Click(object sender, EventArgs e) {
    int width, height;
    width   = webBrowser1.ClientRectangle.Width;
    height  = webBrowser1.ClientRectangle.Height;
    using (Bitmap image = new Bitmap(width, height)) {
        using (Graphics graphics = Graphics.FromImage(image)) {
            Point p, upperLeftSource, upperLeftDestination;
            p                       = new Point(0, 0);
            upperLeftSource         = webBrowser1.PointToScreen(p);
            upperLeftDestination    = new Point(0, 0);
            Size blockRegionSize = webBrowser1.ClientRectangle.Size;
            graphics.CopyFromScreen(upperLeftSource, upperLeftDestination, blockRegionSize);
        }
        image.Save("C:\\Test.bmp");
    }
}
2 голосов
/ 10 сентября 2010

Вот статья , иллюстрирующая это.И есть другой еще больше .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...