问题标签 [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.

0 投票
2 回答
2633 浏览

objective-c - Finder 更新/刷新 applescript 在 10.8 中不起作用

我一直在使用苹果脚本来更新 finder 中文件和文件夹的显示。这是该脚本的简化版本:

我可以看到自 10.8(Mountain Lion)更新命令未正确执行或根本未执行。在 10.8 之前,一切都运行良好 - 在更新命令之后,所有图标都立即重新绘制。我用它来显示覆盖图标。

你们有没有遇到过同样的问题?我责怪 finder 更改了苹果脚本 api,因为如果我触摸 -a -m 文件,它就会更新。所以肯定有一些方法可以更新它。

0 投票
0 回答
359 浏览

macos - 用 application:openFile: 打开文件很慢:返回后

我的应用程序在其应用程序委托中实现了 NSApplicationDelegate 方法 -application:openFile:。OS 10.8 似乎有一个新问题,在接收到打开文件的苹果事件后,在某种内部超时被击中之前经过 5 秒,向苹果事件发送响应,调用应用程序(例如,applescript编辑)收益。

详细地说,这就是我所看到的。在 application:openFile: 返回 YES 之后,我可以看到 -[NSAppleEventManager suspendCurrentAppleEvent] 被调用:

五秒钟后,-[NSAppleEventManager resumeWithSuspensionID:] 被调用:

显然,由于 resumeWithSuspensionID: 是从计时器调用的,并且在我的 application:openFile: 方法返回和 resumeWithSuspensionID: 被调用之间总是非常接近 5 秒,因此达到了某种超时。

在此之后,一切正常进行:无论 applescript 调用什么“打开文件 ...”,都将在下一条语句中继续。似乎没有任何错误 - 它只是超时等待某些东西。

我打开了 AEDebugSends 和 AEDebugReceives。这是我看到的超时:

然后,在超时后我看到了这个(因为我也将 NSScriptingDebugLogLevel 设置为 1 而记录了它):

我的 openFile: 方法除了返回 YES 什么都不做。我还需要做些什么来使框架满意吗?

0 投票
3 回答
19478 浏览

macos - 使用 AppleScript 设置窗口位置

我正在尝试使用 AppleScript 设置 Messages.app 聊天窗口的位置。

使用此代码,我得到一个错误:

这意味着什么?

如果我用 Finder 尝试相同的代码,它就可以工作。但是大多数其他应用程序都不起作用。

0 投票
1 回答
2682 浏览

cocoa - 如何在可可 Mac OS X 10.5 中强制杀死另一个应用程序

我有这个任务,我需要从我的应用程序中杀死另一个我的应用程序,问题是另一个应用程序有一个终止确认对话框(没有要保存的关键数据,只有确认用户退出意图)。

  • 在 10.6+ 上,您将使用:

    /li>
  • 但是在 <10.6 这个常用的 Apple Event 上:

    不能强行退出!!!

那你能用什么?

0 投票
1 回答
859 浏览

objective-c - 在目标 c (Mac OSX) 中打开应用程序时获取 url 事件

我正在为 OSX 10.6+ 编写一个非常轻量级的应用程序,它将响应用户单击 URL,将该 URL 通过 TCP 传递给另一个应用程序,然后退出。

到目前为止,当用户单击自定义 url 方案时,它已经注册好启动。但是,如果应用程序尚未运行,该事件似乎会丢失。所以用户点击链接,应用程序加载,但没有任何反应。应用程序运行后,如果用户单击链接,则它会抓取事件并正常处理它。

我需要做什么才能捕获导致应用程序首先打开的初始事件?

目前我在 applicationDidFinishLaunching 方法中创建 NSAppleEventManager ,这适用于在初始加载后创建的所有事件,但不适用于实际打开应用程序本身的事件。

任何建议都会很棒!

谢谢!

0 投票
1 回答
1126 浏览

objective-c - Cocoa 和 AppleScript / Apple 事件

0 投票
1 回答
455 浏览

objective-c - 如何解释作为 NSAppleScript 结果返回的记录

我使用 NSAppleScript 的 executeAndReturnError 方法从一个 Objective-C 应用程序运行一个 AppleScript。这将返回一个包含脚本结果的 NSAppleEventDescriptor 对象。我的脚本返回一个 applescript 记录。如何解释objective-c中的记录?例如,如果返回的脚本记录是 { name:"Jakob", phone:"12345678" } 如何在 name 属性中获取字符串“Jakob”?

0 投票
1 回答
204 浏览

cocoa - 使用 NSPasteboard 数据启动应用程序

我想使用 NSPasteboard 数据启动应用程序(或使用 AppleEvents 发送给它们),就像在 Finder 中将文件、文本、图像拖放到应用程序(或 Dock 中)并启动或调用应用程序中的数据。

像 LSOpenFromURLSpec 这样的启动服务功能仅适用于文件,我看到 AppleEvents 的任意参数有一个选项,但我不知道如何使它工作。

另一个问题是沙盒,但我不确定它是否可能。

谢谢你。

0 投票
1 回答
872 浏览

macos - AppleScript 中的正确处理程序以响应自定义 URL 处理小程序的“打开”Unix 命令

我正在尝试编写一个简单的 AppleScript 应用程序来处理我的 Mac 上的 sftp:// 和 sshfs:// URL。基于如何在 AppleScript 中创建自定义 URL 处理程序应用程序的良好指南,我编写了一个小应用程序,如下所示,当我单击具有相应方案的 URL 时,它运行良好。实际工作是在调​​用 sshfs(FUSE) 的单独 shell 脚本中完成的,我使用 AppleScript 只是为了将其与操作系统接口。

但是,如果我使用来自 Terminal的命令,此自定义 URL 处理程序 AppleScript 应用程序将不起作用open,例如,

我尝试添加其他处理程序,发现命令行方式调用on run argv处理程序而不是我编写的处理程序,但无法弄清楚如何访问传递的 URL 参数。当直接调用脚本时,我可以正确访问 URL,例如osascript my.applescript sftp://host/path. 尝试了 ASObjC Runner,但没有帮助。

AppleScript 应用程序中是否有用于接收通过openUnix 命令传递的参数的标准处理程序或方法? 它似乎依赖于 AppleEvents,但我找不到一个很好的参考来描述如何使用 AppleScript 在命令和本机应用程序之间发挥同样的魔力。

0 投票
2 回答
691 浏览

ip - 使用脚本将动态网络 IP 地址保存到文件?

有没有办法可以使用 AppleScript 来检查我的网络 IP 地址?还是替代编码选项?如果 IP 地址已更改,我需要将其保存到文件中,然后使用日期和时间戳将其上传到我的 ftp 服务器。我已经知道这部分只是检查地址。