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); 
+0

好吧,我做了一个NPM模块为此,[节点隐藏](https://www.npmjs.com/package/node - 隐藏)去尝试一下 – Ducky