Задать вопрос
Master255
@Master255

Как запустить JS в браузере командой из windows приложения?

Например, открыта произвольная страница в браузере с содержимым, которое придумали мы.
Запущено приложение windows (написанное на C# или Python или Delphi, это не важно) с логикой которую придумали мы.
Как из приложения Windows запустить Java Script в странице или передать туда простейшее логическое значение?
Например, что бы alert сработал.
  • Вопрос задан
  • 288 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
GavriKos
@GavriKos
Приложение открывает себе локально какой то порт, на котором слушает HTTP-запросы.
Джаваскриптина в странице постоянно дергает этот порт на предмет новых данных.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
Во внешний браузер никак не передать, из соображений безопасности для этого не только нет API, но и есть защита от "трюков" таких как патчинг на диске и в памяти, один из главных факторов защиты это постоянные обновления браузеров, поэтому для них очень сложно писать какие-либо "трюки", это нужно чуть ли не дежурить 24/7, поэтому нет ничего такого.

Вы вообще что хотите сделать?

Если отвечать на ваш вопрос, то нужно написать расширение к браузеру которое уже выполняется не вне, а внутри него, использует его официальное API, затем останется только сделать "мост" между приложением и расширением, это может быть NPAPI/PPAPI-плагин либо нечто простое типа общего файла в localstorage, расширение его читает а приложение пишет туда команды.

Но судя по комментариям, вам не это нужно, вам нужно написать бот для сайта, тогда внешний браузер это не то, вам надо либо использовать HTTP-запросы, либо браузер но не внешний а headless-браузер встроенный в приложение - Phantom.js, Selenium, Chromium Embedded Framework, WebKit, Awesomium, Selenium, IE WebBrowser.

Если не получится, то можно отлавливать все запросы к исходному сайту windows приложением (как снифер) и проверять определённый параметр. Затем перехватывать и отвечать. Но это звучит очень сложно в реализации.

Звучит сложно потому что вы не понимаете о чем говорите, если речь о написании бота то не нужно перехватывать запросы постоянно, достаточно сделать это один раз а затем просто отправлять их из своего приложения. Для разового перехвата запросов есть снифферы - Fiddler, Wireshark, Charles, консоль F12.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы