Call Windows API from node.js msg
Call Windows API from node.js msg
我是Node的新手,我有这个简单的Node.js服务器在windows上工作
服务器代码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);
我只是想调用windows API而不是行
console.log(msg);
有没有办法在不使用外部库
的情况下做到这一点?任何想法?
我认为node-ffi可以帮助您做到这一点。node-ffi
提供了加载和调用动态库的功能。使用node-ffi
,您可以访问user32
(例如)库并从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
);
我不想编辑@Vadim的答案,因为它是被接受的,但我认为这个包已经被重命名为'ffi'。
npm install -s ffi
并使用@Vadim的源代码,但将包名称更改为ffi
:
var FFI = require('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
);
你也可以使用这个NPM包,它已经进入了(大部分)Win32 API(使用ffi)并准备从NodeJS使用:https://github.com/waitingsong/node-win32-api
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何更改<svg>标记为<img>用js标记
- 如何使用 node.js 比较两个 json 数组
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Angular JS将msg广播到多个视图,包括模态窗口
- js-test-driver测试中出现Ext.Msg错误
- Call Windows API from node.js msg