繁体   English   中英

Node-ffi窗口列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM