使用Chrome Javascript应用程序在本地驱动器上执行HTML

时间:2015-08-05 18:43:03

标签: javascript html c++ google-chrome

我正在创建一个需要打开用户指定的本地文件的chrome应用程序,并且需要打开这个文件,他们选择的浏览器。现在有了chrome应用程序,我已经想到了它们在chromebook上的条件,所以请将它放在一边。

我有一些浏览器exe文件位置的可能性。这是我的

Chrome Locations

    C:\Program Files (x86)\Google\Chrome\Application

Firefox Locations
    C:\Program Files (x86)\Mozilla Firefox

IE Locations
    C:\Program Files (x86)\Internet Explorer

Edge Locations
    C:\Windows\SystemApps\Microsoft.MicrosoftEdge_------- (not sure if the end is a key so removed)

所以基本上我在考虑使用PNaClNaCl来使用Google的Native Client来使用C ++并使用ShellExecute,除非我不确定如何合并文件位置和用户指定的浏览器。

他们想要打开Microsoft Edge并运行index.html

void main()
{  
    ShellExecute(NULL, "open", "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_-------",
                 NULL, NULL, SW_SHOWNORMAL);
}

似乎Google在Manifest中允许它,所以这里是示例

{
    "name": "My extension",
    ...
    "plugins": [
        { "path": "extension_plugin.dll" }
    ],
    ...
}

所以真的如何编写一个干净的dll文件来执行文件位置和浏览器位置。然后再读一遍,我明白了,

Marking your NPAPI plugin "public" increase the attack surface of your extension because the plugin is exposed directly to web content, making it easier for a malicious web site to manipulate your plugin. Instead, avoid making your NPAPI plugin public whenever possible.

我不希望任何人对可能是恶意的东西感到不满,我只需要它来运行本地浏览器,也可能比查找每个可能的位置更容易找到文件位置。谢谢你提前。

在你迷路的情况下重复提问。

  1. 运行NPAPI dll程序
  2. 如何使用ShellExecute或函数来运行用户确定的浏览器和文件
  3. 了解NPAPI是否会伤害我的用户,如果只是为了他们而没有其他人。

1 个答案:

答案 0 :(得分:1)

您错过了引用的NPAPI页面顶部的重要链接;它是no longer possible to publish extensions than use NPAPI,下一个版本将删除所有NPAPI支持。如果要与本机应用程序通信,则需要使用Native Messaging作为桥接(有关详细信息,请参阅有关从Chrome启动应用程序的其他问题)。

对于NaCl,它不允许您调用任意Windows API。