从 Ruby、PHP 或 Cocoa 访问 Mac 应用程序

2023-12-31

我想通过 Ruby 访问几个不同的 Mac OS X 应用程序,但我会选择 PHP。这些应用程序是Elgato 的turbo.264 和Apple 的iTunes。两者都定义了 Applescript 库,允许我从 Applescript 中执行我想做的操作,但我不想在 Applescript 中执行此操作。如果我不能在 Ruby 或 PHP 中做到这一点,也许我可以在 Objective C / Cocoa 中做到这一点,并创建某种可以从 Ruby 调用的包装器。

这可能吗?看起来如果这些方法在 Applescript 中可用,它们应该在其他语言中可用,我只是找不到任何东西。


尝试 RubyOSA (http://rubyosa.rubyforge.org http://rubyosa.rubyforge.org)然后你可以这样做:

require 'rbosa'
itunes = OSA.app('iTunes')

track = itunes.current_track
p track                     # <OSA::Itunes::FileTrack:0x1495e20>
p track.name                # "Over The Rainbow" 
p track.artist              # "Keith Jarrett" 
p track.duration            # 362.368988037109 
p track.date_added.to_s     # "2006-06-30" 
p track.enabled?            # true

# Play the selected track.
itunes.play                    

# Fade the volume.
100.times { |i| itunes.sound_volume = i; sleep 0.1 }  

# Set iChat's status message to the current track.
OSA.app('iChat').status_message = "Playing: #{track.name}"

您可以与任何支持 AppleScript 的 Mac OS X 应用程序对话

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Ruby、PHP 或 Cocoa 访问 Mac 应用程序 的相关文章

  • 如何编写一个在安装 RubyGem 时调用的钩子?

    我想编写一个 Ruby 片段 当我的 Gem 首次安装时运行 sudo gem install mygem 能做到吗 看起来并没有真正支持 我发现了一个 post install message 属性 您应该能够在 gem 规范中设置该属性
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 如何在 gem 的示例脚本中使用 pry-byebug ?

    我正在制作我的第一个 gem 它不是 Rails 应用程序 而是一个带有一些 AI 的 tic tac toe 库 这样我就可以与一个永远不会输的计算机对手比赛 并在可能的情况下强行获胜 现在我正在尝试调试人工智能中的攻击策略 但我似乎无法
  • Ruby 可选参数和多个参数

    我试图将方法的第一个参数设置为可选 后跟任意数量的参数 例如 def dothis value 0 args 我遇到的问题是 这似乎实际上不可能 当我打电话时dothis hey how are you good 我希望它将值设置为默认值
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • 限制自己超载外部 API 的速率

    我发现了很多信息和脚本示例 展示了如何对 API 用户进行速率限制 但我无法找到任何示例来说明在施加这些限制时如何对您自己的 API 请求进行速率限制 我总是用诸如以下的代码来限制我的脚本sleep or usleep命令 但感觉这是一种低
  • 一个好的8086模拟器[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 mac 有没有 8086 模拟器 如果是 哪个是最好的 除非您需要真正的原始 8086 带有自定义操作系统 否则您应该尝试 DosBox
  • 使用php将数据存储到文本文件中?

    我正在尝试将数据存储在文本文件中 例如使用 php 将数组存储到文本文件中 而不是存储到 mysql 数据库中 例如 这里是要存储在文本文件中的数据 name gt john age gt 25 location gt australia
  • fgetcsv 在特定行打开?

    有没有办法使用 fgetcsv 在特定行上打开 我有一个非常大的 csv 想通过 ajax 一次运行大约 100 行 我可以轻松停止 while 循环 但如何在特定行上打开 或者这是不可能的 从第 100 行开始读取没有简单的方法 但您可以
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • postgreSql 中特定时间后表更新

    我已经在 postgres 中创建了表 现在我想在特定时间 例如 1 小时 后更新一行 我看到很多问题 例如 https dba stackexchange com questions 56424 column auto updated a
  • 将 ruby​​ 类转换为模块比使用改进更好的方法?

    Module refine http ruby doc org core 2 0 0 Module html method i refine方法接受一个类和一个块并返回一个细化模块 所以我想我可以定义 class Class def inc
  • 有没有可以在 HTML 文档之间进行比较的 ruby​​ gem?

    事实证明 对两个不同的 html 文档进行比较是一个完全不同的问题 而不仅仅是对纯文本进行比较 例如 如果我在以下之间进行简单的 LCS 差异 Google and Google diff 结果不是 but a gt github com
  • Joomla 页面中的自定义 php 代码

    我正在尝试将 Joomla 1 5 9 页面中的表源从页面中的硬编码 html 更改为从 SQL 数据库获取信息 执行此操作的正确方法是什么 创建一个新的模型或组件并以某种方式在页面中使用它 我找到了这些 http docs joomla
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 如何在 OSX 上安装 LaTeX .sty 文件?

    我设置了一个 LaTeX 项目 tex documents some file tex support todonotes sty where some file tex uses todonotes usepackage colorinl

随机推荐

  • Sphinx、literalinclude、linenos:如何在文档的代码片段上显示源代码文件中的实际行号?

    我正在使用 Sphinx 来记录网页上的部分 Javascript 代码 I use literalinclude examples mapviz step1 simple html language javascript lines 47
  • Python 中的 Unicode 标识符?

    我想构建一个Python函数来计算 并想将我的求和函数命名为 以类似的方式 想使用 表示乘积 等等 我想知道是否有办法以这种方式命名 python 函数 def 也就是说 Python 是否支持 unicode 标识符 如果支持 有人可以提
  • 如何避免使用 Django、nginx 和 uWSGI 将环境变量放入多个位置?

    我正在尝试配置 nginx uWSGI 来为我的 Django 应用程序提供服务 当我将环境变量放入myapp uwsgi ini uid username gid username env DJANGO SITE KEY 它按预期工作 但
  • Jetpack Compose 测试:断言特定图像已设置

    我有一个Image编写如下 Image bitmap ImageBitmap imageResource id R drawable testimage contentDescription null Only decorative ima
  • 打印 pid_t 的正确 printf 说明符是什么

    我目前正在使用显式转换为 long 并使用 ld用于印刷pid t 是否有一个说明符 例如 z for size t for pid t 如果不是最好的打印方式是什么pid t 没有这样的说明符 我认为你在做什么 铸造pid t to lo
  • docker 运行启动容器,但 localhost 未加载(Windows 10)

    我正在关注本教程 https blog scrapinghub com 2015 03 02 handling javascript in scrapy with splash 使用splash来帮助抓取网页 我安装了Docker工具箱并执
  • 无法从其他设备远程连接 + Vorlon

    Vorlon 仪表板未显示所有连接的设备 我有桌面并安装了 Vorlon 我从笔记本电脑或 ipad 使用此桌面的本地主机 它显示网页 但它没有显示 vorlon 中的设备 但它会显示我是否从同一个桌面打开 我是我的坏人 我正在使用 loc
  • 当对象完成时取消任务

    我有一个启动任务的类 并希望确保该任务在对象被垃圾收集时停止 我已经实现了 IDisposable 模式 以确保如果手动处理对象或在 using 块中使用对象 则任务会正确停止 However 我不能保证最终用户会调用 Dispose 或在
  • 在私有版本的 python 中安装 setuptools

    新手问题 但是 我在系统版本为2 3的主机上安装了python2 7 2 7位于 python2 7 bin python 我想添加一些软件包 例如 MySQLdb 但需要安装工具 说明表明您可以使用 prefix 作为参数 但是 如果我执
  • br 标签在 Haml on Rails 3 中未关闭

    我在让 Haml 关闭 br 标签时遇到问题 我尝试了以下方法但没有成功 br br 我预计这会导致 br 但它总是输出为 br 即使末尾有斜线字符 我还尝试将以下选项添加到 application rb 并且我尝试了environment
  • 用于检查 4 个不同字符组中至少存在 3 个的正则表达式

    我正在尝试编写一个密码验证器 如何查看我提供的字符串是否包含至少 3 个不同的字符组 检查它们是否存在很容易 但至少有 3 个 至少八 8 个字符 至少三个不同的角色组 大写字母 小写字母 numeric 特殊字符 我正在使用 javasc
  • 在 jquery post 中发送长字符串

    我无法在 jquery post 方法中发送长字符串 超过 96 个字符 在 FF12 和 Chrome 18 中测试 我的 servlet 是 public class TestServletAsh extends HttpServlet
  • SoftLayer API 用于了解 VLAN 中的总 IP 和可用 IP

    SoftLayer API 用于了解 VLAN 中的总 IP 和可用 IP Hello 如果我知道某个 VLAN 的总 IP 数和已用 可用 IP 可以使用哪个 APIVLAN ID 我能想到的一种方法是我可以获得 VLAN 的子网 然后在
  • (Python) ValueError:在路径中找不到程序点

    我有以下问题 我在 xUbuntu 操作系统上 我尝试在 Flask 应用程序中使用 networkx 并且我有以下代码 import networkx as nx Creating and initializing graph objec
  • ASP.NET MVC C#:查看记录详细信息时出现对象引用错误

    我是一个 NET 和 MVC 新手 在经历了 ASP 的长时间使用之后 我第一次学习它 现在是时候进行转换 让我构建 Web 应用程序的工作变得更加容易 我一直在浏览 Stephen Walther 的有用视频教程来了解大多数事情 到目前为
  • ICC 汇编输出中的所有这些数字意味着什么?

    使用 ICC 编译时 每条指令后面都是 2 个点分隔的数字 并以哈希符号为前缀 这意味着什么 例如 https gcc godbolt org g g g h codeEditor i j 1 source int testFunction
  • :nth-child(n+4):nth-child(-n+8) 如何选择一系列元素?

    根据http nthmaster com http nthmaster com 当通过 nth child 设置一系列元素的样式时 我们必须这样做 nth child n 4 nth child n 8 如果我们只使用一个 nth chil
  • 自动宽度和 100% 宽度之间的差异

    之前我的假设是width auto宽度设置为内容的宽度 现在我看到它占据了父级的整个宽度 谁能描述一下它们之间的区别吗 宽度自动 像 div 或 p 这样的块级元素的初始宽度是 auto 这使得它扩展以占据其包含块内的所有可用水平空间 如果
  • PHP函数返回NULL而不是数组[重复]

    这个问题在这里已经有答案了 我调用一个执行一些递归并且应该返回一个数组的函数 事实上 被调用函数中 return 语句之前的 var dump 就表明了该数组 然而 调用函数结果的 var dump 显示 NULL 而不是数组 这是调用函数
  • 从 Ruby、PHP 或 Cocoa 访问 Mac 应用程序

    我想通过 Ruby 访问几个不同的 Mac OS X 应用程序 但我会选择 PHP 这些应用程序是Elgato 的turbo 264 和Apple 的iTunes 两者都定义了 Applescript 库 允许我从 Applescript