[英]Node-ffi Window List
我希望能够使用Node-ffi来获取Windows操作系统中所有当前打开的Windows /程序的列表,大概是User32.dll中带有EnumWindows的东西或类似的东西。 我希望能够从User32中的“ FindWindowW”中获取句柄,以及进程名称的字符串,因此我知道它是哪个。
多亏了一些友善的灵魂,我已经使'FindWindowW'起作用了,并且知道了有关EnumWindows的问题 ,但是我无法使该解决方案正常工作,始终只能得到Uncaught ReferenceError: libm is not defined
在node_modules \\ ffi \\ lib_foreign_function中未定义Uncaught ReferenceError: libm is not defined
.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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.