Objective c 通过NodObjC获取打开应用程序的窗口位置

Objective c 通过NodObjC获取打开应用程序的窗口位置,objective-c,node.js,macos,nodobjc,Objective C,Node.js,Macos,Nodobjc,我最近一直在摆弄node.js模块(顺便说一句,非常酷的模块),我拼凑了一个简单的模块,让你能够通过node.js控制鼠标,现在我正试图通过CGWindowListCopyWindowInfo(想法是利用这些信息和虚拟鼠标功能做一些有趣的事情)。 我对Objective C没有太多经验,但我在一篇博客文章中偶然发现了一个例子: 我用Xcode测试了它 #import "Foundation/Foundation.h" #import "Cocoa/Cocoa.h" NSArray* wind

我最近一直在摆弄node.js模块(顺便说一句,非常酷的模块),我拼凑了一个简单的模块,让你能够通过node.js控制鼠标,现在我正试图通过
CGWindowListCopyWindowInfo
(想法是利用这些信息和虚拟鼠标功能做一些有趣的事情)。 我对Objective C没有太多经验,但我在一篇博客文章中偶然发现了一个例子:

我用Xcode测试了它

#import "Foundation/Foundation.h"
#import "Cocoa/Cocoa.h"

NSArray* windows = CFBridgingRelease(CGWindowListCopyWindowInfo(kCGWindowListOptionAll, kCGNullWindowID));
NSLog(@"%@", windows);
它会打印出我想要的所有数据和更多数据,但现在我一直在研究如何使用NodObjC模块实现这一点

下面是我的做法(使用NodObjC v1.0.0):

但我得到了以下错误:

/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/lib/_foreign_function.js:55
  throw e
        ^
TypeError: error setting argument 0 - writePointer: Buffer instance expected as third argument
at Object.writePointer (/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:740:11)
at Object.set (/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:482:13)
at Object.alloc (/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:514:13)
at ForeignFunction.proxy (/Users/loknar/Desktop/node_robot/nodobjc_stuff/ffi/lib/_foreign_function.js:50:22)
at Function.unwrapper (/Users/loknar/Desktop/nodobjc_stuff/node_modules/NodObjC/lib/core.js:297:31)
at Object.<anonymous> (/Users/loknar/Desktop/nodobjc_stuff/listOfWindows.js:44:20)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/lib/_foreign_function.js:55
掷e
^
TypeError:设置参数0时出错-WritePoint:缓冲区实例应作为第三个参数
在Object.writePointer(/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:740:11)
在Object.set(/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:482:13)
在Object.alloc(/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:514:13)
在ForeignFunction.proxy(/Users/loknar/Desktop/node_robot/nodobjc_stuff/ffi/lib/_foreign_function.js:50:22)
在Function.unwrapper(/Users/loknar/Desktop/nodobjc_stuff/node_modules/nodobjc/lib/core.js:297:31)
在对象处。)

这已在中修复

/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/lib/_foreign_function.js:55
  throw e
        ^
TypeError: error setting argument 0 - writePointer: Buffer instance expected as third argument
at Object.writePointer (/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:740:11)
at Object.set (/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:482:13)
at Object.alloc (/Users/loknar/Desktop/nodobjc_stuff/node_modules/ffi/node_modules/ref/lib/ref.js:514:13)
at ForeignFunction.proxy (/Users/loknar/Desktop/node_robot/nodobjc_stuff/ffi/lib/_foreign_function.js:50:22)
at Function.unwrapper (/Users/loknar/Desktop/nodobjc_stuff/node_modules/NodObjC/lib/core.js:297:31)
at Object.<anonymous> (/Users/loknar/Desktop/nodobjc_stuff/listOfWindows.js:44:20)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)