问题标签 [appleevents]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
terminal - 启动终端时applescript超时
我有一个脚本,我需要从终端运行可执行文件
脚本如下
但这超时并显示错误消息
我什至尝试使用超时
超时时间为 5000 秒
但没有运气,它仍然超时......
有时会观察到这种行为,但并非总是如此。我正在使用 El Capitan Mac OS。
我有机会在 Sierra 和 High Sierra 上进行测试,它在那里运行良好。
任何想法,我们如何解决这个问题?
注意:如果我在运行这个脚本之前打开一个终端,那么它会毫无问题地执行。
提前致谢
automator - 授权 UNIX 命令控制应用程序
我想设置一个运行bbdiff
命令的 Automator 快速操作,并将 Finder 中的选定文件传递给它。
我创建了一个快速操作,并将其设置为在“Finder.app”中接收“文件或文件夹”。
然后我添加了“运行外壳脚本”动作,并将外壳设置为“/bin/bash”,并将输入“作为参数”传递。脚本是:
如果我从 Automator 或终端手动运行该脚本(用真实文件名替换参数),它会提示我授权主机程序控制 BBEdit,然后它就可以工作了。
但如果我从 Finder 运行它,我会收到以下错误:
“运行 Shell 脚本”操作遇到错误:“您必须允许
bbdiff
将事件发送到 BBEdit 应用程序。用于tccutil reset AppleEvents
重置系统权限,然后重试。bbdiff:错误:-1743”</p>
我尝试tccutil reset AppleEvents
再次运行并运行该操作,但它显示了相同的错误。
我还尝试将 bbdiff、/bin/bash 和 Finder 添加到 System Preferences > Privacy 的 Accessibility 和 Full Disk Access 选项卡中,但没有任何改变。看起来您需要在“自动化”选项卡中添加一些内容,而这无法手动完成。
我怎样才能让它允许像bbdiff
控制应用程序这样的 UNIX 命令?
更新:
我设法通过使用“运行 AppleScript”操作而不是“运行 Shell 脚本”来解决此问题:
我第一次运行它时,我得到了允许 Finder 控制 BBEdit 的提示,然后它工作了。
但这不适用于其他 shell 脚本,所以问题仍然存在。
macos - 如何取消最小化最小化窗口(苹果脚本不适用于从 Capitan 升级到 Mojave)
我有一个为 El Capitan 编写的脚本,升级到 mojave 它停止工作。有没有办法让最近的窗口最小化?这是我以前使用的脚本:
macos - 使用 NSWorkspace 打开应用程序之间的 URL 时如何发送和接收 NSAppleEventDescriptor?
NSWorkspace 有方法open(_:withAppBundleIdentifier: [...] )
:
从一组 URL 打开一个或多个文件。
您要打开的应用程序的 NSApplicationDelegate具有相应的方法,这些方法会被调用以打开您提供的 URL:
回到open(_:withAppBundleIdentifier: [...])
,该方法有一个 NSAppleEventDescriptor 参数:
additionalEventParamDescriptor descriptor: NSAppleEventDescriptor?
在 AppleEvent 样式描述符中指定的附加选项。例如,您可以使用此参数指定在启动应用程序时要打开的其他文档。
我想向将打开文件的应用程序发送其他信息。
这将与userInfo
通知中的字典类似地使用。
我已经构建了一个NSAppleEventDescriptor
对象来表示这些信息。open( ... )
我可以在 NSWorkspace函数中设置这个事件描述符。
但是如何在目标应用程序的应用程序委托中接收此事件描述符?
这些application(_: openFile:)
函数没有事件描述符的参数或任何其他“ userInfo
”类型的附加信息。
代码
根据答案和其他问题,我确定了以下解决方案。我现在得到了 Apple 事件的触发处理程序。但是我在 NSWorkspace 函数上设置的 Apple 事件不是处理程序中收到的事件!我如何获得我的Apple Event?
发送
发送苹果事件:
<NSAppleEventDescriptor: 'aevt'\'odoc'{ '----':'utxt'("THIS IS A TEST") }>
收到
收到苹果事件:
<NSAppleEventDescriptor: 'aevt'\'odoc'{ '----':[ 'bmrk'(888/$626F6F6B7803000000000 [....] 00000AC01000000000000...$) ] }>
swift - 在 macOS 中将 AppleScript 与 Apple 事件一起使用 - 脚本不起作用
我们需要使用 AppleScript 在 macOS 中创建外发电子邮件。该脚本在脚本编辑器中运行良好。使用 DTS https://forums.developer.apple.com/message/301006#301006推荐的代码没有结果、警告或错误。与论坛中的示例脚本结果相同。在这里需要 Swift 和 Apple Events 专业知识。谢谢!
swift - AppleScript 电子邮件附件在处理程序中不起作用
我们有一个有效的 AppleScript,它可以创建带有附件的电子邮件,并且在脚本编辑器中运行良好。但是,我们无法让附件在我们的 macOS 应用程序中使用的处理程序中工作。很难找到文档并弄清楚激活和发送命令之间的区别。感谢您的任何帮助,您可以提供。
这是AppleScript
这是处理程序:
security - 如何修复 macOS Catalina 错误“未授权将苹果事件发送到终端”?
尝试在 macOS Catalina (10.15.1) 下打开 Maxima.app 时,我收到一条弹出错误消息““未授权将苹果事件发送到终端”。
确切地说,在 Catalina 系统偏好设置(大概是安全和隐私中的某个地方)中,我允许访问吗?
自动化部分似乎是一个合理的地方,除了我看不到在那里添加任何应用程序的方法。
automation - 当一个应用程序想要使用 MacOS 10.14 中的 AppleEvent 与其他应用程序通信时,我们的自动化系统面临问题
当一个应用程序想要使用 AppleEvent 与其他应用程序通信时,我在我们的自动化系统中遇到了问题。我们有一个自动化实用程序 (QASoapLib.app),它存在于 Mac 客户端机器上,在该机器上对软件 (MySoftware.app) 执行测试当实用程序应用程序在 MySoftware.app 上触发测试时,我遇到了一个问题。QASoapLib 和 MySoftware.app 之间的通信使用 Apple 事件进行。每当 QASoapLib 首次向新的 MySoftware.app 构建触发命令时,Apple 操作系统都会抛出一个权限对话框,提示“QASoapLib.app”想要访问控制“MySoftware.app”。允许控制将提供对“MySoftware.app”中文档和数据的访问权限,并在该应用程序中执行操作” 如果我们按下 Ok 按钮,那么两者之间的通信就会发生并且 MySoftware.app 开始运行测试。该警报不再针对该构建出现。但是对于系统中每个新的 MySoftware.app 构建,总是会出现警报。它成为自动化的阻塞问题。我应该怎么做才能解决这个问题?