Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call Windows API from node.js msg

I am new at Node, I have this simple Node.js server works on windows

Server Code

var ws = require("websocket-server");

var server = ws.createServer();

server.addListener("connection", function(client){
    console.log("new connection");
    client.send("aaaaaa");
    client.addListener("message", function(msg){
        console.log(msg);
    });
});

server.listen(8080);

I just want to call windows API insted of line

console.log(msg);

is there any way to do this without using external library

any ideas?

like image 855
Mohammed Khabbaz Avatar asked Apr 02 '13 21:04

Mohammed Khabbaz


People also ask

Can we call API from node JS?

We can make API calls natively in Node. js using one of these two APIs: HTTP Module. Fetch API.

What are Windows API calls?

Windows APIs are dynamic-link libraries (DLLs) that are part of the Windows operating system. You use them to perform tasks when it is difficult to write equivalent procedures of your own.


1 Answers

I think node-ffi can help you to do that. node-ffi provides functionality for loading and calling dynamic libraries. With node-ffi you can get access to user32 (for example) lib and call their functions from node.js.

var FFI = require('node-ffi');

function TEXT(text){
   return new Buffer(text, 'ucs2').toString('binary');
}

var user32 = new FFI.Library('user32', {
   'MessageBoxW': [
      'int32', [ 'int32', 'string', 'string', 'int32' ]
   ]
});

var OK_or_Cancel = user32.MessageBoxW(
   0, TEXT('I am Node.JS!'), TEXT('Hello, World!'), 1
);
like image 183
Vadim Baryshev Avatar answered Oct 10 '22 22:10

Vadim Baryshev