如何获得在Mac上使用Node.js在前台运行的应用程序窗口的坐标?

我正在编写一个将在Mac电脑上运行的node.js脚本。 我想获得在前台运行的应用程序的坐标和处理细节。

例如,如果我运行的脚本,我已经打开的唯一的程序是谷歌浏览器,那么我应该得到一个包含1个对象的数组:

  • Google Chrome的进程ID
  • Google Chrome窗口的x / y坐标。

到目前为止,我所能做的就是获取正在运行的进程列表:

  • ps-node :进程查找实用程序

如果有帮助,我也将使用nw.js框架来运行我的应用程序。

你可以使用NodObjC – Node.js Objective-C桥:

 var $ = require('nodobjc') $.framework('Foundation'); $.framework('Cocoa'); var pool = $.NSAutoreleasePool('alloc')('init'); var result = $.CGWindowListCopyWindowInfo($.kCGWindowListExcludeDesktopElements | $.kCGWindowListOptionOnScreenOnly, $.kCGNullWindowID); var windowList = $.CFBridgingRelease(result); var error = $.alloc($.NSError).ref(); var jsonData = $.NSJSONSerialization('dataWithJSONObject', windowList, 'options', $.NSJSONWritingPrettyPrinted, 'error', error); var jsonString = $.NSString('alloc')('initWithData', jsonData, 'encoding', $.NSUTF8StringEncoding); var parsed = JSON.parse(jsonString); console.log(parsed); pool('drain');