Скачать и запустить exe из браузера Chrome с помощью плагина C++

У меня есть веб-страница, где, когда я нажимаю кнопку, она должна загрузить exe-файл из URL-адреса, и exe-файл должен автоматически вызываться без вмешательства пользователя.

В Internet Explorer я достиг этого с помощью элемента управления ActiveX ( .ocx), развернутого в виде CAB-файла.

Я планирую распространить это на платформу Chrome и Firefox тоже. (по крайней мере, хром для первого шага).

Я не хочу использовать Java-апплет (необходимо удалить зависимость Java). Я знаю, что мог бы добиться этого с помощью плагина Firebreath, но очевидно, что сейчас не время погружаться в плагин NPAPI (поскольку NPAPI уже исчезает. Chrome начал постепенное прекращение использования NPAPI).

Когда я изучал альтернативные технологии плагинов для NPAPI, я наткнулся на собственный клиент Google. При дальнейшем чтении я узнал, что Nacl тоже не будет соответствовать моим потребностям, так как os звонки api не будут работать в nacl (я надеюсь, что URLDownloadToFile api или createprocess или shellexecute не будут работать. Исправьте меня, если я ошибаюсь).

Должен ли я пойти на Native Messaging? Есть ли какая-то другая альтернативная технология? Веди меня, пожалуйста.

3 ответа

Спасибо всем людям. Наконец-то я остановился на Launch Application Using Custom Protocol Handler. http://msdn.microsoft.com/en-us/library/ie/aa767914%28v=vs.85%29.aspx. Это соответствовало моим потребностям.

NPAPI, пока он не уйдет, позволит вам делать то, что вы хотите; кроме этого Native Messaging является единственным вариантом.

Как уже упоминали другие, это действительно плохая идея (тм).

Как указывалось выше, родная система обмена сообщениями в Chrome, похоже, является наиболее подходящим решением для Chrome.

Во-первых, посмотрите здесь: эта запись блога показывает, что собственный обмен сообщениями может быть использован для запуска "calc.exe". Я еще не попробовал сам, но выглядит многообещающе: https://plus.google.com/+FrancoisBeaufort/posts/jdTrmmZL9Xh

Следует иметь в виду, что метод Native Messaging будет работать только с расширением Chrome, которое открывает целый ряд связанных вопросов.

(1) Можно ли установить расширения Chrome для всех пользователей, использующих групповую политику? или через реестр? -Да, согласно http://www.chromium.org/administrators/pre-installed-extensions Позднее редактирование: через реестр могут быть добавлены только "опубликованные" расширения. смотрите - https://developer.chrome.com/extensions/external_extensions

(2) Можете ли вы определить, установлено ли расширение? -Да, расширение Chrome: как определить, установлено ли расширение с помощью Content Scripts

Так что, возможно, возможно иметь двухэтапный процесс:

- Ваши пользователи перейдут на веб-страницу, на которой будет проверяться расширение (с помощью №1 выше)

-Если его там нет, попросите пользователей загрузить и установить.exe (это потребует взаимодействия).

-.exe развернет файлы расширения и зарегистрирует его для Chrome (используя № 2 выше)

-При последующих посещениях уже установленное расширение можно использовать для запуска / связи с уже установленным.exe (с использованием Native Messaging).

Другие вопросы по тегам