2013-01-16 25 views
5

Có cách nào để sử dụng bất kỳ thành phần com ActiveX nào có nodej không?Sử dụng Thành phần ActiveX Com với nútjs. Có thể

Thực ra, tôi sẽ không bao giờ cần điều này nhưng tôi đang chạy các nút trên Windows và cố gắng gửi yêu cầu ping mà không yêu cầu các quy trình mới (không có mô-đun nào tồn tại cho Windows).

Vì một số thành phần Activex tồn tại để gửi yêu cầu ping với ổ cắm thô, có lẽ tôi có thể sử dụng chúng.


Một ví dụ về cách bạn có thể tạo ra một đối tượng COM từ JavaScript là:

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

Không phải là một trùng lặp, nhưng hãy kiểm tra [Bạn có thể gọi các thành phần COM từ phía máy chủ javascript?] (Http://stackoverflow.com/question/5076228/can-you-call-com-components-from-server-side-javascript). –

+0

@RB., Tôi đã kiểm tra nhưng thực sự đang tìm kiếm thứ gì đó ổn định và sẵn sàng để sử dụng. Thx nhiều – umutm

Trả lời

1

(cập nhật)

Bạn có thể thử sử dụng nút-ffi liên kết với Win32 và khởi động một Thành phần COM/ActiveX (CoCreateInstance) hoặc truy cập winsock/icmp trực tiếp. Xem https://github.com/rbranson/node-ffi

Hoặc cố gắng ping qua WMI, ví dụ: "chọn * từ win32_pingstatus trong đó Address = '...'". Xem https://npmjs.org/package/wmi

+0

Các gói nút cho ping tồn tại nhưng chúng cho các quy trình ping.exe mới mà tôi đã có thể thực hiện với "exec". Tôi cần một cái gì đó sử dụng "ổ cắm nguyên" cho ICMP. Tìm kiếm rất nhiều nhưng nó không tồn tại cho nút-thắng. – umutm

+0

Cả hai tùy chọn đều trông tuyệt vời. Cảm ơn rất nhiều. – umutm

+0

Thử nghiệm cả hai: - node-ffi bằng cách nào đó có vấn đề khi cài đặt - mỗi truy vấn wmi dường như là ngã ba một quy trình cscript.exe mới, không có ý nghĩa Ouch .. – umutm

6

Có nút-win32ole (npm install win32ole).

EDIT: win32ole không còn được duy trì tích cực nữa. Thay vào đó, bạn có thể thử dùng winax.

+0

Dường như nhận xét khác của bạn bị xóa bằng cách nào đó. Tôi đang sử dụng thành phần ICMP này: http://www.activexperts.com/activsocket/objects/icmp/ Nút-win32ole có thể làm cho nó hoạt động mà không cần bất kỳ quy trình mới nào không? – umutm

+0

@idobetter Tôi không thể cài đặt win32ole, bạn có thể cho tôi một số lời khuyên không? Tôi đã đăng câu hỏi về nó: http://stackoverflow.com/q/33146316/694360 – mmj