uBrowser - складной микробраузер
спрячь в уголок, чтоб никто не уволок
Схема (доступна прямо из запущенного с любым Windows-проектом hiAsm: Правой кнопкой мыши на вкладке открытого проекта / Список Проектов / Forms and UI / WebBrowserLinkCapture)
Отдельное спасибо Tad за помощь в оптимизации и оформление схемы в пригодный для обучения вид.
Краткое описание функционала
Развитый до юзабельной программы пример практического применения перехвата нажатия на ссылки в WebBrowser
+ динамическое скрытие масштабируемых элементов управления,
+ динамическое скрытие заголовка и рамки окна (фоновый режим - поверх всех окон).
Нажимаемые в левой (сворачивающейся) панели WebBrowser ссылки и набираемые (в верхней панели) адреса URL фильтруются по маске (нижняя панель) и открываются в центральной форме WebBrowser.
Ссылки, нажимаемые с зажатой Shift ("Открыть в новом окне") фильтруются по маске и добавляются в правую панель закладок (можно сохранять и загружать из текстового файла).
Реализован перехват и добавление в панель закладок совпадающих с маской ссылок из буфера обмена. Можно полазать в любимом браузере по сайтам, накопировать ссылок на видео и смотреть их в уголке экрана, в мини-браузере, незаметно для коллег и начальства )
Не подходящие по маске URL открываются в левой панели WebBrowser.
На обе панели web-браузера можно перетаскивать поддерживаемые Internet Explorer (или его плагинами) файлы (как минимум, htm(l) и mht файлы, а также url ссылки), которые он и откроет. Таким образом можно работать с оффлайн-документацией, JavaScript утилитками, встроенными в сохранённые Вами страницы и прочим.
+ динамическое скрытие масштабируемых элементов управления,
+ динамическое скрытие заголовка и рамки окна (фоновый режим - поверх всех окон).
Нажимаемые в левой (сворачивающейся) панели WebBrowser ссылки и набираемые (в верхней панели) адреса URL фильтруются по маске (нижняя панель) и открываются в центральной форме WebBrowser.
Ссылки, нажимаемые с зажатой Shift ("Открыть в новом окне") фильтруются по маске и добавляются в правую панель закладок (можно сохранять и загружать из текстового файла).
Реализован перехват и добавление в панель закладок совпадающих с маской ссылок из буфера обмена. Можно полазать в любимом браузере по сайтам, накопировать ссылок на видео и смотреть их в уголке экрана, в мини-браузере, незаметно для коллег и начальства )
Не подходящие по маске URL открываются в левой панели WebBrowser.
На обе панели web-браузера можно перетаскивать поддерживаемые Internet Explorer (или его плагинами) файлы (как минимум, htm(l) и mht файлы, а также url ссылки), которые он и откроет. Таким образом можно работать с оффлайн-документацией, JavaScript утилитками, встроенными в сохранённые Вами страницы и прочим.
некоторые сферы применения программы
Чаще применяется на рабочих местах в офисах для неприметного просмотра в уголке экрана медиа-контента и информации:
Flash-игры и ролики (кстати, сильно уменьшив игровое окно можно легко выигрывать там, где важен размах движений мышкой, арканоиды, например)
Приложения SilverLight
Онлайн ActiveX приложения
Онлайн виджеты и утилитки (AJAX и иже с ним)
Видео ролики и фильмы
Потоковые радио и ТВ-вещание
онлайн WEB-камеры и системы наблюдения (некоторые работают чз ActiveX и требуют именно IE или uBrowser ;) )
Анимированные графики курсов валют, акций, погоды и т.п.
Новостные ленты, чаты (в том числе - flash-видеоконференции)
Развёрнутый вид (все вспомогательные панели)
Основной режим - фоновая работа в уголке поверх окон (только контент, панели, рамка и заголовок окна автоматом попрятались)
Известные проблемы и ограничения программы (не сильно мешающие с ней работать)
- Открытые в левой панели динамические HTML-страницы со сложными скриптами (а-ля AJAX) могут очень болезненно воспринимать перехват ссылок и сворачивание панели, вплоть до вылетания всей программы. С самого начала, по задумке заказчика, панель была рассчитана на самодельные html-списки. А вообще проблема в WebBrowser, он на такое издевательство не был расчитан)
- могут быть проблемы с IE9 (не проверялось)
- В Win7 на сплиттерах появляются совсем левые курсоры
- Надо успевать работать со вспомогательным браузером за 10 секунд (не работает у WebBrowser отслеживание фокуса, у него много что не работает, а по координатам крысу ловить пока не было повода, ибо это таки html-плейлист, а не полноценный браузер..
- В браузерах криво работают клавиатурные комбинации, например, CTRL+C Косяк WebBrowser.
- Не перехватывает открытие в новом окне по инициативе сайта Опять WebBrowser виноват)
- ссылки, открываемые по команде "Назад", снова проходят через фильтр и могут быть открыты не в том окне, что раньше (зависит от совпадения с маской)
- оставленое открытым и активным (в фокусе) сразу после запуска (без использования) приложение через несколько часов может потерять связь с браузером и отказаться открывать ссылки Выловил на некоторых ОС и версиях браузера, вероятно, утечка памяти или таймаут неактивности COM-объекта какой-нибудь, разбираться нет смысла)
- Дубликаты в панели закладок не удаляются
- окно не свернуть Предварительно, проблема в скрытии заголовка. Возврат заголовка обратно, похоже, переинициализирует обработчик команды "свернуть" на недееспособный.
ToDo list
Изначально это был простейший пример перехвата ссылок, но нет предела совершенству (исходник у Вас уже есть ;) ):
* Адресная панель и панель маски вполне могли бы быть выпадающими списками
* При старте программы мог бы загружаться список закладок по умолчанию
* В списке закладок удобно было бы переименовывать их в читаемые названия
* Удаление дубликатов и сортировка списка закладок (если появятся имена)
* Групповой выбор, групповое удаление и перетаскивание ссылок в закладках
* Вспомогательный браузер можно задерживать на экране по координатам мыши
* Сворачивать/скрывать окно альтернативным способом и прицепить иконку в трее
* Перехватывать целые группы ссылок из буфера обмена, совпадающие с маской
* Анализатор текста в буфере на предмет ссылок: копируем HTML-код вставки ролика, а ссылка из тэгов извлекается автоматом
* Глобальная клавиша "антибосс"
* Временное увеличение окна, если панели не влезают (до скрытия панелей)
* Перехват ссылок в список закладок можно озвучить
* Прилипание к краям экрана и других окон было бы совсем не лишним
* Адресная панель и панель маски вполне могли бы быть выпадающими списками
* При старте программы мог бы загружаться список закладок по умолчанию
* В списке закладок удобно было бы переименовывать их в читаемые названия
* Удаление дубликатов и сортировка списка закладок (если появятся имена)
* Групповой выбор, групповое удаление и перетаскивание ссылок в закладках
* Вспомогательный браузер можно задерживать на экране по координатам мыши
* Сворачивать/скрывать окно альтернативным способом и прицепить иконку в трее
* Перехватывать целые группы ссылок из буфера обмена, совпадающие с маской
* Анализатор текста в буфере на предмет ссылок: копируем HTML-код вставки ролика, а ссылка из тэгов извлекается автоматом
* Глобальная клавиша "антибосс"
* Временное увеличение окна, если панели не влезают (до скрытия панелей)
* Перехват ссылок в список закладок можно озвучить
* Прилипание к краям экрана и других окон было бы совсем не лишним