【问题标题】:Using ActiveX Com Components with nodejs. Is it possible将 ActiveX Com 组件与 nodejs 一起使用。可能吗
【发布时间】:2019-09-06 23:47:34
【问题描述】:

有没有办法在 nodejs 中使用任何 ActiveX com 组件?

实际上,我永远不需要这个,但我在 Windows 上运行 nodejs 并尝试在不分叉新进程的情况下发送 ping 请求(Windows 不存在这样的模块)。

由于存在一些用于使用原始套接字发送 ping 请求的 Activex 组件,也许我可以使用它们。


如何从 JavaScript 创建 COM 对象的示例如下:

var rs = new ActiveXObject("ADODB.Recordset");

【问题讨论】:

标签: node.js activex


【解决方案1】:

有 node-win32ole ( npm install win32ole )。

编辑:不再积极维护 win32ole。你可以试试winax

【讨论】:

【解决方案2】:

(更新)

您可以尝试使用 node-ffi 绑定到 Win32 并启动 COM/ActiveX 组件 (CoCreateInstance) 或直接访问 winsock/icmp。见https://github.com/rbranson/node-ffi

或者尝试通过 WMI ping,例如“从地址 ='...' 的 win32_pingstatus 中选择 *”。见https://npmjs.org/package/wmi

【讨论】:

  • 存在用于 ping 的节点包,但它们用于新的 ping.exe 进程,我已经可以使用“exec”来完成。我需要为 ICMP 使用“原始套接字”的东西。搜索了很多,但 node-win 不存在。
  • 这两个选项看起来都很棒。非常感谢。
  • 两个都测试过: - node-ffi 安装起来有点问题 - 每个 wmi 查询似乎都派生了一个新的 cscript.exe 进程,这没有任何意义 哎哟..
  • 你懂 C++ 吗?你可以编写自己的扩展。可以在这里找到一个很好的 VC++ 小示例:github.com/daguej/node-winnetinfo
【解决方案3】:

Node.js 的 ICMP ping 模块现已存在:

https://npmjs.org/package/net-ping

【讨论】:

    【解决方案4】:

    几年后:

    node winax

    node win32ole 不再适用于最新的 node.js 版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      相关资源
      最近更新 更多