«Другими словами, подключение и запуск в сеансе консоли? Если нет, то это может быть обходной путь.

работал тестовый каркас GUI, который проводит тестирование интеграции сайта нашей компании на плановой основе. Когда что-то не получится, он сделает снимок экрана рабочего стола, между прочим. Это выполняется без присмотра вошедшего в систему пользователя на выделенном Windows Server 2008.

Проблема это снимок экрана на рабочем столе, с которого я отключил сеанс удаленного рабочего стола. Я получаю следующее исключение:

System.ComponentModel.Win32Exception (0x80004005): The handle is invalid     
at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation)     
at System.Drawing.Graphics.CopyFromScreen(Point upperLeftSource, Point upperLeftDestination, Size blockRegionSize)     
at IntegrationTester.TestCaseRunner.TakeScreenshot(String name) in C:\VS2010\IntegrationTester\IntegrationTester\Config\TestCaseRunner.cs:line 144     
at IntegrationTester.TestCaseRunner.StartTest() in C:\VS2010\IntegrationTester\IntegrationTester\Config\TestCaseRunner.cs:line 96

TakeScreenshot () Метод выглядит так:

public static void TakeScreenshot(string name)
        {
            var bounds = Screen.GetBounds(Point.Empty);
            using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
            {
                using (Graphics g = Graphics.FromImage(bitmap))
                {
                    g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
                }
                bitmap.Save("someFileName", ImageFormat.Jpeg);
            }
        }

Я удостоверился, что заставка установлена ​​на «Нет» без тайм-аута. Я также реализовал кусок кода, который делает несколько пинвоков дляпошли мышкой, надеясь, что это сгенерирует дескриптор настольной графики ... но нет

IntPtr hWnd = GetForegroundWindow();
if (hWnd != IntPtr.Zero)
    SendMessage(hWnd, 0x200, IntPtr.Zero, IntPtr.Zero);

Любой совет приветствуется.

Ответы на вопрос(6)

Ваш ответ на вопрос