2013-04-05 22 views
2

我想通过Chrome中的Javascript在我的计算机上执行本地程序。在Firefox中,这是可以做到如下在Google Chrome中通过Javascript启动系统命令

var file = Components.classes["@mozilla.org/file/local;1"] 
    .createInstance(Components.interfaces.nsILocalFile); 
file.initWithPath(cmd); 

var process = Components.classes["@mozilla.org/process/util;1"] 
    .createInstance(Components.interfaces.nsIProcess); 
process.init(file); 

process.run(false, args, args.length); 

可以请任何一个可以帮助我从浏览器扩展程序执行本地程序?

感谢

+3

这对于普通Chrome扩展API来说是不可能的。你需要使用[NPAPI](http://developer.chrome.com/extensions/npapi.html)。许多人为此推荐[Firebreath](http://www.firebreath.org/)框架。我没有这方面的第一手经验,所以我不能提供任何代码。 – 2013-04-05 11:11:29

+0

Hi Rob, 您可以让我知道,是否有任何教程来创建NPAPI插件,以及如何将这些插件集成到Chrome扩展中? 谢谢 – 2013-04-09 08:58:47

+0

就像我说过的,我从未创建过一个NPAPI插件。我给的任何口水都可以通过研究找到。 [SO]上的[NPAPI标记](http://stackoverflow.com/questions/tagged/npapi?sort=votes)专门用于解决这些问题。我建议看看他们。 – 2013-04-09 09:01:17

回答

-3

你可以调用一个jQuery的AJAX程序,以执行一个PHP脚本,可以使用EXEC执行命令()。 JavaScript是一种客户端语言,但你可以使用jQuery ...

你可以找出如何在此链接:

http://www.sitepoint.com/take-command-ajax/

+0

如果扩展的用户在他的电脑上运行PHP服务器,这只会是一种可行的方法。该问题询问如何在* client *计算机上运行命令,而不是服务器。 – apsillers 2013-04-05 16:42:42

+0

这是正确的apsillers,这个想法是执行一个服务器端脚本,可以是PHP,ASP等 – 2013-04-05 16:53:16

+0

运行服务器端脚本与OP想要做什么无关。 OP想要一个扩展来启动一个位于*客户机*上的可执行文件。例如,让一个可执行文件在用户的计算机上运行'C:\ Windows \ notepad.exe',让用户在他的计算机上看到该程序打开 - 不涉及服务器。 – apsillers 2013-04-05 16:54:35

1

你不能做到这一点。 Chrome的沙箱安全模型不允许您在用户的机器上任意执行程序;这可能是非常危险的。理论上可以使用NPAPI来做到这一点,但这种插件不太可能被批准用于Chrome网上应用店。如果这仅用于私人用途,则可以使用NPAPI创建插件,然后执行任何您想要的操作,但您无法通过Chrome网上应用店分发该插件。

+0

嗨Ken Liu, 您能否让我知道是否有任何在线或离线教程来创建NPAPI插件? 也请让我知道我应该如何将这些NPAPI插件集成到我的Chrome扩展中? 谢谢 Ramesh – 2013-04-09 08:52:18

+0

https://developer.mozilla.org/zh-CN/docs/Plugins – 2013-04-09 15:28:35