C++ 使用c+从chrome浏览器下载并运行exe+;插件

C++ 使用c+从chrome浏览器下载并运行exe+;插件,c++,google-chrome,plugins,npapi,chrome-native-messaging,C++,Google Chrome,Plugins,Npapi,Chrome Native Messaging,我有一个网页,当我点击一个按钮时,它应该从一个url下载一个exe,并且该exe应该在没有用户干预的情况下被自动调用 在InternetExplorer中,我通过部署为.cab文件的activex控件(.ocx)实现了这一点 我也计划将其扩展到chrome和firefox平台。(第一步至少使用镀铬) 我不想使用Java小程序(需要删除Java依赖项)。我知道我可以通过Firebreath插件实现这一点,但显然现在不是深入研究NPAPI插件的好时机(因为NPAPI已经逐渐淡出。Chrome已经开始

我有一个网页,当我点击一个按钮时,它应该从一个url下载一个exe,并且该exe应该在没有用户干预的情况下被自动调用

在InternetExplorer中,我通过部署为.cab文件的activex控件(.ocx)实现了这一点

我也计划将其扩展到chrome和firefox平台。(第一步至少使用镀铬)

我不想使用Java小程序(需要删除Java依赖项)。我知道我可以通过Firebreath插件实现这一点,但显然现在不是深入研究NPAPI插件的好时机(因为NPAPI已经逐渐淡出。Chrome已经开始逐步淘汰NPAPI)

当我研究NPAPI的替代插件技术时,我偶然发现了Google原生客户端。通过进一步阅读,我知道Nacl也不适合我的需要,因为操作系统调用api在Nacl中不起作用(我希望URLDownloadToFile api或createprocess或shellexecute不起作用。如果我错了,请纠正我)


我应该使用本机消息吗?我还缺少其他替代技术吗?请引导我

直到它消失,NPAPI会让你做你想做的事;除此之外,本地消息传递是唯一的选择


正如其他人所提到的,这是一个非常糟糕的想法(tm)。

如上所述,Chrome的本地消息似乎是Chrome的发展方向

首先,看看这里:这篇博客文章显示可以使用本机消息来启动“calc.exe”。我还没有亲自尝试过,但它看起来很有希望:

需要记住的一点是,本机消息传递技术只能在Chrome扩展上工作,这将打开一整套相关问题

(1) 是否可以使用组策略为所有用户安装Chrome扩展?还是通过注册中心? -是的,根据 稍后编辑:只能通过注册表添加“已发布”的扩展名。见-

(2) 您能否检测到是否已安装扩展? -对

因此,可能有一个两阶段的过程:

-您的用户将进入web页面,该页面将测试扩展(使用上面的#1)

-如果没有,请让用户下载并安装.exe(这需要交互)

-.exe将部署扩展文件并为Chrome注册(使用上面的#2)


-在以后的访问中,可以使用已经安装的扩展启动现在已经安装的.exe(使用本机消息)

谢谢所有人。我最终决定使用自定义协议处理程序启动应用程序。这符合我的需要。

我认为没有任何virusscanner会喜欢这样。浏览器用户可能也会将此视为一种安全风险。“它应该从url下载一个exe,并且该exe应该在没有用户干预的情况下自动调用”——从一开始就不是个好主意。没有任何东西可以阻止您在未经用户同意的情况下自动单击按钮并调用可执行文件。这是一个重大的安全风险。无论最终得到什么解决方案,您都可能会因为安全风险而被浏览器供应商阻止。