如何使用 Node.js 在 Mac 的前景中获取应用程序 window 运行 的坐标?
How do I get the coordinates of an application window running in foreground on Mac using Node.js?
我正在编写 node.js 脚本,它将 运行 在 Mac 计算机上。我想在前台和进程详细信息中获取应用程序 运行ning 的坐标。
例如,如果我 运行 脚本和我打开的唯一程序是 Google Chrome 那么我应该得到一个包含 1 个对象的数组:
- Google Chrome 的进程 ID
- x/y坐标GoogleChromewindow.
到目前为止,我所能做的就是获取 运行ning 进程的列表:
- 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');
我正在编写 node.js 脚本,它将 运行 在 Mac 计算机上。我想在前台和进程详细信息中获取应用程序 运行ning 的坐标。
例如,如果我 运行 脚本和我打开的唯一程序是 Google Chrome 那么我应该得到一个包含 1 个对象的数组:
- Google Chrome 的进程 ID
- x/y坐标GoogleChromewindow.
到目前为止,我所能做的就是获取 运行ning 进程的列表:
- 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');