Захват скриншота содержимого прокручиваемого окна
Мне нужно сделать снимок экрана области клиентского окна прокрутки, используя .NET. Мой первый приоритет - захват скриншотов на веб-странице. Но это может быть не единственный случай использования. Например, это может быть также текстовая область в Блокноте.
Некоторые приложения (FastStone Capture, PicPick) могут эмулировать поведение пользователя, чтобы достичь скрытой части прокручиваемой области и захватить ее. Я ищу что-то вроде этого или рекомендации для альтернативного способа получить тот же результат.
![alt text]()
Ответы
Ответ 1
Я продолжил поиск и основал IECapt, - инструмент с открытым исходным кодом, который может использовать скриншот веб-страницы, используя IE внутри него. Он имеет версии C++ и .NET. Также есть аналог Qt/WebKit от того же автора: http://cutycapt.sourceforge.net.
Эти инструменты не являются прямым ответом на мой вопрос, но оба они решают исходную проблему на 90%.
Ответ 2
Вы можете получить окна для перенаправления WM_PAINT в буфер вне экрана с WM_PRINT и WM_PRINTCLIENT. Это лучше, чем скрипинг, потому что он гарантирует, что затененные части окна (за другими окнами) окрашены в любом случае. Если ваше целевое окно прокручивается, прокручивая позицию дочернего окна, должен применяться WM_PRINT. Просто, возможно, это также поможет вашему сценарию.
Ответ 3
Вы посмотрели на Снагита? http://www.techsmith.com/download/accessories/default.asp
Кроме того, здесь используется утилита С#, которая, похоже, делает то, о чем вы просите: http://www.codeproject.com/KB/graphics/IECapture.aspx