是否可以通过编程方式调用OS X服务?

时间:2012-02-03 01:47:22

标签: macos

我正在尝试在阿尔弗雷德的Appigo Todo for Mac中创建新任务。因为它在服务菜单中提供OS X服务,让我突出显示任何文本并从中创建新任务。是否可以通过编程方式向此服务发送文本? (Shell脚本,AppleScripts,Automator等)

2 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。

这是一个shell命令的示例,它将通过applescript将键击发送到最前面的应用程序:

osascript -e "tell application \"System Events\" to keystroke \"a\""

另请查看Cliclickxdotool(来自MacPorts)和pymaCursor

您可能还想考虑像Sikuli

这样的UI自动播放器

答案 1 :(得分:0)

Invoking a Service Programmatically

尽管用户通常通过在“服务”菜单中选择一项来调用标准服务,但您可以使用此函数在代码中调用它:

BOOL NSPerformService(NSString *serviceItem, NSPasteboard *pboard)

如果服务执行成功,该函数返回YES;否则,它返回 NO。服务菜单项(任何语言)的名称包含在 serviceItem 中。它必须是服务的全名;例如, “Search in Google.” 参数 pboard 包含要用于服务的数据,当函数返回时,它包含从服务返回的数据。然后,您可以对数据进行任何您想要的操作。