javascript - 从 Web 浏览器进行 Win API 调用?

标签 javascript winapi plugins cross-browser activex

我想知道是否可以(以及如何)使用 JavaScript 从 Web 浏览器进行一些 Win32 API 调用。我目前对此事的理解使我得出这样的结论:我需要某种 ActiveX 控件,然后可以使用它轻松地进行所需的调用。然而,阅读整个网络上的文章警告我,使用 ActiveX 并不是一个跨浏览器的解决方案。现在我不想强制我的用户只使用 IE,据我所知,这是唯一支持 ActiveX 的浏览器。不过,我确实想让此功能仅对 Windows 用户可用。

我想要的是获取当前登录的用户及其SID,并将此信息发送到Web应用程序,该应用程序将处理此数据,将其存储到数据库等。另外,我可能需要一些调用来访问硬件加密设备连接到客户端计算机(即带有证书的 USB token )。

如何获得这个?我需要为每个网络浏览器编写单独的插件吗?如果这一切都可以使用 C# 来完成,那就更好了,但原生 C++ 对我来说也不陌生,所以如果第一个不可能,我可以回退到后者。

最佳答案

如果没有在客户端计算机本身上运行的特定于浏览器的插件(ActiveX 控件可以做到这一点),您所要求的内容是不可能的。

ActiveX 主要是一种仅适用于 InternetExplorer 的技术,但是过去已经有插件可以向其他浏览器添加 ActiveX 支持。不确定他们中的任何一个是否随着时间的推移而幸存下来。但无论如何,ActiveX 都是 Windows 独有的技术,因此它无法在其他平台上运行。

当前浏览器技术的趋势是尝试尽可能远离插件,转而依赖 HTML5 和 JavaScript 本身的内置功能。<​​/p>

据我所知,我能想到的唯一跨浏览器解决方案是使用签名的 Java 小程序通过 JNI 加载 DLL:

Load .DLL with applet and use it on client

然而,Java 小程序代替 Flash 和 HTML5 已经不再流行,甚至现在有些浏览器默认禁用 Java。因此,如果您想针对广泛的受众,我认为这不是一个非常可行的解决方案。但对于孤立的受众来说,这可能是一个可行的选择。

关于javascript - 从 Web 浏览器进行 Win API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28728614/

相关文章:

javascript - 如何使用 Bootstrap 表在表头的同一行上获得四个图标?

ruby-on-rails - 创建一个简单的 Rails 3 文本助手 Gem

javascript - 未通过 axios post 请求接收 Set-Cookie header

javascript - Quill.js 扩展未在增量中捕获的 Blot/Parchment 更改

c++ - 将 UTF-16(Windows 上的 wchar_t)转换为 UTF32

c++ - Exe 不能在旧版本的 Windows 上运行

java - 如何获取jar类来自

ruby-on-rails - 添加 Hook 到脚本/生成迁移

javascript - 使用 JS 和 HTML 的 Google map API(从地点 A 到地点 b 的方向)

c++ - 如何使用 C++ 通过标准输入获取可用数据的大小