是否可以(以及如何)从 Web 应用程序在客户端计算机上执行程序? - Angular 5

Is it possible (and how) to execute a program on the client machine from a web app? - Angular 5

我正在开发一个网络应用程序来替换用作监控应用程序的旧应用程序。我正在复制的旧应用程序有一个小按钮,上面写着 "watch",它会在 PC 上调用一个程序,类似于 TeamViewer,但它只让你观看,而另一端不会注意到。

所以,我想做的是,从我的网络应用程序执行一个程序,将某些参数传递给该应用程序(它必须能够观察不同的机器),并且该应用程序需要保持 运行.显然,必须存在某种安全问题才能完成此操作。此应用程序将 运行 仅在 LAN 中,在无法通过互联网访问外部世界的计算机之间。

有什么方法可以在网络浏览器中从 app-web 运行 调用程序?我发现我唯一想要的东西是 this link (weblogs.asp.net),但它需要事先在机器中创建一个自定义 URL 协议。虽然这不是灾难性的,但我宁愿拥有可以从 LAN 中的任何机器使用的东西,而机器中没有某种 "preparation"。

一个可能有点相关的例子是用于种子的磁铁 links。当你点击磁铁 link 时,它会询问你是否要在你的 PC 中执行 X 应用程序(你的默认 torrent 应用程序),你可以同意或不同意(我对执行前的安全检查没有问题本地程序)。

万一这很重要,我主要使用 Angular 5 开发应用程序(并且在 python 中使用 Flask 制作了一些后端)。

好的,所以,如果有人发现这个问题并想做一些与我需要的类似的事情,这就是我最终做的事情。

使用 ElectronJS 并创建我的应用程序的 .exe 桌面版本,我可以在其中访问 Electron API,从中您可以执行文件和命令行。

似乎无法从网络浏览器执行文件,除非您使用 Internet Explorer,并将网页设置为受信任。有了这个,你可以使用 ActiveXObject,但使用 IE 对我来说不是一个选择(或者对任何人来说,可能。现在是 2018 年,来吧)。