Скачать и запустить 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).