А какой браузерный движок использует приложение? MSIE? Нет ли планов сделать возможность выборить движок для рендера страниц?
Спасибо за приложение, возможность выбрать разрешение очень полезная функция х)
Используется стандартный элемент управления WebBrowser, которые является аналогом IE. Как вариант решения, необходимо добавить возможность выбора операционной системы и браузера, которым мы хотим «просматривать» страницу.
Программно это можно сделать, задав для WebClient UserAgent:
WebClient client = new WebClient();
client.Headers.Add(«user-agent», «Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)»);
В данном случае заходим рендеринг будет осуществляться для FireFox.
Рендеринг ведь происходит на клиенте. И мало зависит от того, какой вы хидер отдадите.
Просто сайт в ответ на этот хидер может отдать разметку, специфичную для Firefox. Так что «рендеринг НЕ будет осуществляться для FireFox.»
Вообще вы молодец, но позвольте пару замечаний, которые, надеюсь, разовьют ваш проект дальше:
а) Делайте скриншот страницы в отдельном потоке, например с помощью BackgrondWorker, ну и соответственно в библиотеке сделайте возможность запускать это асинхронно.
б) Подредактируйте немного интерфейс. После ввода url хотелось бы по нажатию Enter получать картинку, и вообще отыскать кнопку в Toolbar'e не так уж и просто, сделайте лучше здоровую кнопку «Поехали» :)
в) если ввести адрес, что то вроде habrahabr.ru, то хотелось бы, чтобы автоматом подставлялось http.
г) Обратите внимание на вывод ошибок (вызовите ее при помощи пункта (в)) — вы явно перепутали где title а где текст сообщения.
д) А это в долгий ящик — может быть все таки просматривать страницу, потому как бывают всякие flash и silverlight на которых нужно еще что то нажать, чтобы увидеть именно тот View который вам нужен.
P.S. Красивый и грамотный код, за что вам спасибо, и удачи в развитии проекта!
И еще в Win7 (у меня x64) после того как сделаешь граб и закроешь вылазит Program Compatibility Assistant — «This program requires flash.ocx, which is no longer included in this version of Window». Это скорее всего из-за WebBrowser но может как то можно побороть.
Саму программу ещё не смотрел. Позвольте замечание по тексту поста.
«Website Screenshots & Thumbnails Extractor — это Windows приложение, написанное на .NET Framework 3.5 и доступное с исходным кодом»
Эта фраза, идущая во главе текста и являющаяся определением, ничего не говорит о программе. А ведь именно здесь следовало бы кратко резюмировать суть программы.
Примеры можно найти в любой качественной статье из Википедии. Там отдельное внимание уделяется тому, чтобы в первом предложении дать супер-краткую суть; в первом абзаце — чуть более подброно; во введении описать основное; в статье описать всё, что нужно.
А как по мне в шапке и вмсесте с описанием возможностей и названием все становится понятно. Так что мне кажется это несущественно. А сама утилита хорошо сделана, действительно хорошая работа.
« это Windows приложение для извлечения скриншотов и превьюшек сайтов с открытым исходным кодом» — плохо, т. к. создаётся ощущение, что для вашей программы подходят только сайты с открытым исходным кодом. ;)
Будет лучше поменять порядок слов:
« это Windows приложение с открытым исходным кодом, предназначенное для извлечения скриншотов и превьюшек сайтов»
Чёрт, что на меня нашло — так привязался. ;) Простите уж, как-то прицепилось.
Не равноценно. Порядка 9 мб против 250 мб. И firefox у меня все равно установлен.
Чтобы сделать скриншот мне нужно всего лишь щелкнуть кнопочку в статусбаре firefox, когда я просматриваю сайт. Не нужно ничего запускать.
Я говорю вообще про клиентПрофайл когда ставить когда размер фремворка уменьшается до 25Мб, это реально. Во-вторых у многих он стоит по апдейту, в 7-ку вообще 3.5 версия установлена поумолчанию, в других версиях — другая версия фреймворка предустановлена
Это у вас стоит фаерфокс, у многих пользователей он не стоит.
Хотя в качестве плагина такая утилита лучше. Но по сути какая разница. Опять же не все используют фаерфокс
буквально месяц назад на нашем проекте решали очень похожую задачу. Разница в том, что нам нужен был сервис, делающий скрин произвольного сайта. После часа гугления, я попробовал вариант с webbrowser, фактически ie. Вскрылось несколько проблем: иногда оно просто не могло отрендерить страницу, иногда падало с .net runtime error. Решением стало использование geckofx плюс рендеринг решено было производить в отдельном процессе, а не потоке, чтобы максимально обезопасить сам сервис.
Website Screenshots & Thumbnails Extractor