Graphics.CopyFromScreen [веб-приложение] + дескриптор недействителен - PullRequest
2 голосов
/ 04 декабря 2010

Я использую приведенный ниже код для печати экрана моей веб-страницы.

      using (Bitmap bitmap = new Bitmap(620, 850))
        {    
            using (Graphics g = Graphics.FromImage(bitmap))
            {
                g.CopyFromScreen(new Point(bounds.Left, bounds.Top), Point.Empty, bounds.Size);
            }
            bitmap.Save(System.AppDomain.CurrentDomain.BaseDirectory.ToString() + 1 + ".JPEG", ImageFormat.Jpeg);
        }

Он отлично работает на компьютере разработчика, но после его развертывания на сервере выдает ошибку ниже

Сообщение об ошибке:

The handle is invalid
Source: System.DrawingError
Stack Trace:    at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation)    
   at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize)    
   at System.Drawing.Graphics.CopyFromScreen(Point upperLeftSource, Point upperLeftDestination, Size blockRegionSize)    
   at Secure_SearchReport.btnSearch_Click(Object sender, EventArgs e)    
   at System.Web.UI.WebControls.Button.OnClick(EventArgs e)    
   at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)    
   at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)    
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)

Очень срочно.Любое предложение, пожалуйста .......

Ответы [ 2 ]

1 голос
/ 04 декабря 2010

Я полагаю, что графические функции доступны только в приложениях rich-client. (Windows Forms)

Это было бы огромной проблемой безопасности, если бы веб-страницы могли делать снимки рабочего стола пользователя.

0 голосов
/ 28 марта 2012

Вы можете попробовать VisualJS.NET, видео на странице http://www.visualjs.net/Tutorials/WhatisVisualJSNET.aspx может быть полезным.Они используют сервер Cassini Dev в дополнение к встроенным функциям VisualJS.NET для демонстрации очень простого удаленного рабочего стола через веб-приложение.

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