2010-10-07 4 views
15

Мне нужно сделать снимок экрана с клиентской области окна прокрутки, используя .NET. Мой первый приоритет - захват скриншотов на веб-странице. Но это может быть не единственный случай использования. Например, это может быть также текстовая область в «Блокноте».Захват прокручиваемого содержимого окна снимок экрана

Некоторые приложения (FastStone Capture, PicPick) могут эмулировать поведение пользователя, чтобы достичь скрытой части прокручиваемой области и захватить ее. Я ищу что-то вроде этого или рекомендации для альтернативного способа получить тот же результат.

alt text

+3

+1 для включения пояснительной графики. – 2010-10-09 21:04:59

+0

Вы получили какое-либо решение на этом? Я ищу общее решение, которое работает для любого окна с поддержкой прокрутки. –

+1

Я нашел решение для захвата веб-страниц http://stackoverflow.com/a/3904596/177194 Существует также WatiN: http://watin.org Я не думаю, что можно использовать общий подход для прокрутки абсолютно любое окно на Windows из-за наличия большого количества программного обеспечения, основанного на неместных/пользовательских исполнениях. Для большинства браузеров и приложений Java потребуются отдельные решения. – dreikanter

ответ

2

Я продолжил поиск и основал IECapt, - инструмент с открытым исходным кодом, который может использовать скриншот веб-страницы, используя IE внутри него. Он имеет версии С ++ и .NET. Также есть аналог Qt/WebKit от того же автора: http://cutycapt.sourceforge.net.

Эти инструменты не являются прямым ответом на мой вопрос, но оба они решают исходную проблему на 90%.

3

Вы можете получить окна, чтобы перенаправить WM_PAINT к закадровым буфера с WM_PRINT и WM_PRINTCLIENT. Это лучше, чем скрипинг, потому что он гарантирует, что затененные части окна (за другими окнами) окрашены в любом случае. Если ваше целевое окно прокручивается, прокручивая позицию дочернего окна, должен применяться WM_PRINT. Просто, возможно, это также поможет вашему сценарию.

Смежные вопросы