我正在编写一个将在Mac计算机上运行的node.js脚本。我想让应用程序的坐标在前台运行并处理细节。
例如,如果我运行脚本并且我打开的唯一程序是Google Chrome,那么我应该得到一个包含1个对象的数组:
到目前为止,我所能做的就是获取正在运行的进程列表:
如果有帮助,我也将使用nw.js框架来运行我的应用程序。
答案 0 :(得分:3)
您可以使用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');