如何使用Node.js获取在Mac前台运行的应用程序窗口的坐标
How do I get the coordinates of an application window running in foreground on Mac using Node.js?
我正在编写一个node.js脚本,该脚本将在Mac计算机上运行。我想得到在前台运行的应用程序的坐标和进程的详细信息。
例如,如果我运行脚本,并且我打开的唯一程序是Google Chrome,那么我应该得到一个包含1个对象的数组:
- Google Chrome的进程ID
- Google Chrome窗口的x/y坐标
到目前为止,我所能做的就是得到正在运行的进程的列表:
- ps节点:进程查找实用程序
如果有帮助的话,我还将使用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');
相关文章:
- ng应用程序使脚本无限运行
- 仅为一个窗体运行应用程序脚本
- Meteor应用程序无法运行-对象#<编译器>没有方法'主机'
- 谷歌图表在运行应用程序时只能显示一次
- MAC操作系统-如何通过Java类运行应用程序(.app)
- 获取docker容器中运行的节点应用程序的IP地址
- 在安装后首次运行应用程序时从 UIBebView 发出 jQuery Ajax 请求
- 如何更新日期?当我运行应用程序时,它被卡住了
- 如何从 HTML 运行应用程序
- 使用 WebView.loadUrl 执行 javascript 在第一次运行应用程序时不起作用
- 不知道如何在节点中运行应用程序.js
- 如何在运行应用程序时用javascript清除AngularJS应用程序中的缓存
- 搜索源阻止运行应用程序后,从流星1.1更新到流星1.2
- 如果我应用断点并在调试模式下运行应用程序,则应用程序可以完美运行
- 我在本地主机上运行应用程序时出现错误.无法加载XMLHttpRequest
- 你的意思是js:垂直模块运行应用程序创建器
- 在node.js中运行应用程序时出现连接超时错误
- 错误:$injector:modulerr模块运行应用程序时出错
- Knockout只有在Heroku上运行应用程序时才能解析绑定
- 多次运行应用程序而不停止上一次