gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 23:46:38 26 4
gpt4 key购买 nike

我正在编写将在 Mac 计算机上运行的 node.js 脚本。我想获取在前台运行的应用程序的坐标和进程详细信息。

例如,如果我运行脚本并且我打开的唯一程序是 Google Chrome,那么我应该得到一个包含 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');

关于javascript - 如何使用 Node.js 获取在 Mac 上前台运行的应用程序窗口的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com