一般来说,我知道无法通过浏览器中的javascript调用系统库或dll。但在许多应用程序中,我看到浏览器启动其他进程。例如:
C:\Users\Jatin\AppData\Local\Google\Google Talk Plugin
)。 (可在资源监视器中查看)在某种程度上,与flash和applet相同。
浏览器如何触发另一个进程并与之通信?我缺少任何开放标准吗?
最终我希望通过截屏视频进行视频,录音。对于屏幕录制,Java applet看起来是唯一的解决方案,但applet有自己的问题。
答案 0 :(得分:3)
Flash播放器和applet使用插件,这些插件是操作系统的本机应用程序(即(大多数情况下)不是JavaScript),它们不是插件而是插件。对于Chrome,请参阅chrome:// plugins /以查看已安装插件的列表。
有关编写浏览器插件的信息,请参阅How to write a browser plugin?
torrent链接完全不同,它们是通过注册url协议来完成的。换句话说,你对计算机说,从现在开始,,我将运行任何具有torrent
协议的URL,即:以torrent://
开头。请参阅:Uri Scheme
当浏览器看到uri时,它知道它没有处理torrent
协议本身,所以它将它委托给OS,它知道如何处理它。
如果浏览器确实知道如何处理它,它可能不会将其委托给操作系统。例如:Google Chrome可以很好地处理mailto:
链接,而无需注册要由操作系统处理的mailto
协议。
答案 1 :(得分:2)
您可以通过编写插件来完成此操作。使用名为Firebreath
的库,可以使用相同的C ++代码编写适用于大多数流行浏览器的插件。当然,没有预先存在的标准插件允许页面启动任何外部应用程序,因为这将是一个巨大的安全漏洞,没有(理智)用户会同意安装这样的插件
您必须编写一个特定的插件,其功能仅限于您所需的功能,因此用户可以同意让您仅使用这些功能。再次考虑另一个页面如何在沿着这条路线前利用这些功能。