Node-ffi窗口列表
问题描述:
我希望能够使用Node-ffi获取Windows操作系统中所有当前打开的窗口/程序的列表,大概是User32.dll中的EnumWindows或类似的东西。我希望能够得到一个句柄,比如User32中的'FindWindowW',还有一个进程名称的字符串,所以我知道它是哪一个。Node-ffi窗口列表
由于某种灵魂我得到了'FindWindowW的工作和了解的this question对EnumWindows的,但我就是不能让这种解决办法的工作, 总是只得到node_modules Uncaught ReferenceError: libm is not defined
\ FFI \ lib_foreign_function.js :59
谢谢任何帮助,非常感谢。
答
好吧,最终我得到了这个解决了EnumWindows的是这样的:
var ref = require('ref');
var ffi = require('ffi');
var voidPtr = ref.refType(ref.types.void);
var stringPtr = ref.refType(ref.types.CString);
var user32 = ffi.Library('user32.dll', {
EnumWindows: ['bool', [voidPtr, 'int32']],
GetWindowTextA : ['long', ['long', stringPtr, 'long']]
});
windowProc = ffi.Callback('bool', ['long', 'int32'], function(hwnd, lParam) {
var buf, name, ret;
buf = new Buffer(255);
ret = user32.GetWindowTextA(hwnd, buf, 255);
name = ref.readCString(buf, 0);
console.log(name);
return true;
});
user32.EnumWindows(windowProc, 0);
好吧,我做了一个NPM模块为此,[节点隐藏](https://www.npmjs.com/package/node - 隐藏)去尝试一下 – Ducky