:: Visual Foxpro, Foxpro for DOS
Управление браузером из программы
Sega
Автор

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Назрела следующая проблема: раньше для вызова из программы перехода на сайт ГосУслуг использовал механизм создания объекта
loHTML=CreateObject("InternetExplorer.Application")
и делал переход на сайт
loHTML.Navigate("https://www.gosuslugi.ru/auth/esia/?redirectPage=/")
где в качестве логина подставлял автоматически из программы номер СНИЛСА, который хранится в программе. Пользователь далее сам вводит только пароль.

Но пользователи стали жаловаться, что в Интернет-эксплорере всё очень плохо работает, и попросили сделать так, чтобы сайт открывался в назначенном по-умолчанию браузере. Допустим, что при помощи API функции ShellExecute я могу запустить браузер и сразу перейти на нужную страницу. Однако, как грамотно подсунуть туда номер СНИЛСА?

Пример частный. В программе есть также другие моменты, где нужно на других сайтах также вводить автоматически данные из базы (ФИО, прописку). Как получить управление браузером, как объектом? Или может как-то по-другому можно решить эту проблему?
Ratings: 0 negative/0 positive
Re: Управление браузером из программы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Никак не получить "управление браузером". Не дают они таких возможностей абы кому (и правильно делают ).
Нет, конечно же можно управлять мышкой и клавиатурой, только нормально через такой "метод автокликера" заполнить что-то на веб-форме... Для примитивных и никогда не изменяющихся страничек может и сгодится, для реальной жизни - крайне маловероятно.
Ещё можно попробовать написать своё "расширение" к браузеру - там контроль над браузером более чем обширный, но это ж надо устанавливать его, проводить через процедуру сертификации (точнее процедуру подписывания своей работы ЭЦП и размещения её в соответствующем репозитории расширений) у производителя браузера (методы позволяющие ставить абы что абы откуда и без всяких "подписей" постепенно блокируются этими самыми производителями браузеров).

А в чём проблема использовать АПИ предоставляемые всеми этими сайтами, и непосредственно у себя в программе и реализовывать интерфейсную часть?


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Управление браузером из программы
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Sega
Как получить управление браузером, как объектом? Или может как-то по-другому можно решить эту проблему?

"Как объектом" можно только для имеющих такую оболочку. Но кроме IE никто на это так никогда и не пошел. Это же практически параллельный движок тащить, кому оно надо. У мозиллы была попытка создать что-то подобное в версии 1(!!), но дальше проект прекратился.
Можно попытаться какими-то обходными путями. Например у того же FF есть различные плагины "для заполнения формы". Может быть удастся как-то их задействовать? Или в принципе там многое на скриптовых языках пишется, может быть написать/подкорректировать готовое расширение для чего-то подобного? Т.е. использовать именно механизм расширений. Единственный нюанс - сегодня FF меняет движок (последний из всех живых) в версии 57 на очередной хромоклон вместо своего изначального. Поэтому плагины требует писать теперь уже по-новому, поддержка старых прекращается. Что вообще говоря не самая приятная новость - не все новые аналоги старых плагинов на сегодня существуют, а версия уже подпирает. До весны можно продержаться на ESR-версии, но потом и она перескочит. Либо впору не обновляться. [sm128]


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/1 positive
Re: Управление браузером из программы
Sega
Автор

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Коллеги, спасибо за консультацию. Однако печаль печальная....
Про расширение к FF я в курсе. Даже пытался в другой задаче писать на JS плагин к нему. Проблема в том, что у пользователей полный "попугайник" браузеров и заставить всех пользоваться только FF невозможно. А писать под каждый браузер совсем не вариант.

Доступ к сайту через API идеальный вариант. Где-то даже проскакивала техническая документация для подключения к ГосУслугам. Однако, думаю, что нашей небольшой автошколе как потребителю госуслуг (проверка ИНН физлиц, подача заявлений на выдачу в/у) вряд ли предоставят доступ. Я у них на сайте ничего не нашел. Хотя может и искал не там.
Ratings: 0 negative/0 positive
Re: Управление браузером из программы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Хм, я полагал что там всё бесплатно и для всех - это ж ГОСуслуги, а не покупной какой сервис... Вот то что общаться придётся с малоприятными господами слабо разбирающимися в предмете - это может быть.
А по расширениям - по идее "новомодные" WebExt на которые и FF переходит поддерживаются сразу на куче браузеров. С офстраницы
Цитата:
WebExtensions - это кросс-браузерная система разработки дополнений (для браузеров). В значительной степени эта система совместима с API-расширений, поддерживаемых Google Chrome и Opera. Расширения, написанные для этих браузеров, в большинстве случаев будут работать с Firefox или Microsoft Edge лишь с минимальными изменениями. Эти API также полностью совместимы с мультипоточным Firefox.
Возможно что не так уж и страшно будет сделать плагин собираемый под всю актуальную линейку браузеров (собственно IE благополучно помер, оставшиеся так или иначе "расширяемы"). Т.е. к 99% "общего" кода добавить 1% браузероспецифичного и всё...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Управление браузером из программы
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Sega
Проблема в том, что у пользователей полный "попугайник" браузеров и заставить всех пользоваться только FF невозможно.

Как вариант, в чем-то возможно немного спорный, но таки вполне решающий подобные проблемы - для данной своей работы использовать свой портабл-браузер, который всего лишь "добавлять в упаковку" к своей программе, всего-то лишние мегов 50 без прописки в реестре вдобавок с простым переносом с компа на комп вместе с программой, т.е. сохраняя привычный для пользователей вид, независимо от рабочего места.
Вообще же, замечал, если пользователям для какого-то конкретного серьезного веб-сервиса ставить не используемый чаще всего никем FF, это воспринимается обычно даже в порядке вещей. Кстати на их сайте есть даже официальные портабл-версии (лучше использовать ESR).
А про "попугайство" так и есть. Обычно оно возникает при отсутствии блокировок на установку из интернета. Когда кроме хрома, возникает куча всяких яндексо-клонов, названий и не упомнишь, которые плодятся день ото дня и обычно ставятся якобы "сами собой".


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 2 раз(а). Последнее : Crispy, 27.10.17 06:57
Ratings: 0 negative/0 positive
Re: Управление браузером из программы
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
Не готов ответить, точно ли будет работать именно твоя задача так, да и давно ваял последний раз сам, но.., нечто подобное делал раньше: в IE WebBrowser открывал форму авторизации без визуализации на экран, сохранял ее как HTML, в "тени" правил этот HTML в соответствии с введенными данными пользователем в стандартной фоксовой форме, через Shell открывал этот HTML в браузере по умолчанию, где пользователю необходимо было только нажать на "Отправить/Вход/Авторизоваться" или как так обозвана кнопочка/ссылочка. Окно Браузера по умолчанию отыскивал по WMID и принудительно выводил на первое место на экране.
Ratings: 0 negative/1 positive
Re: Управление браузером из программы
Sega
Автор

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Интересный вариант. Спасибо. Попробую.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 33 (Гостей: 33)

© 2000-2024 Fox Club 
Яндекс.Метрика