我到处都在寻找答案,但找不到任何答案。当我运行此代码时,动作AXShowMenu将正确执行。但是脚本继续运行了几秒钟并抛出错误:
“进程“消息”的窗口“消息”的拆分器组1滚动区3的滚动区域3的文本字段的菜单按钮的动作“ AXShowMenu”不理解“执行”消息。”
我在这里错过了明显痛苦的东西吗?在执行AXShowMenu操作之后,如何让Applescript继续前进?
tell application "System Events"
tell process "Messages"
perform action "AXShowMenu" of menu button of text field of scroll area 3 of splitter group 1 of window "Messages"
end tell
end tell
这是我要访问的菜单的链接。如果您创建新消息并在文本字段中输入一些文本,则可以创建该元素。
答案 0 :(得分:0)
确定最终目标是确定在 Messages 应用程序的To:
字段中输入的数字是在iMessage服务还是SMS服务下运行,您可以尝试使用buddies
和services
对象,以确定它们是否可用于有效地区分数字类型。
由于我没有iPhone,因此我的 Messages 应用程序缺少短信功能。但是,当我输入一些随机数时,我发现, Messages 应用会将其归类为我认为最适合其本质的服务类型号码:
use application "Messages"
service type of services of buddy "12343" = iMessage
对我来说,这返回true
,仅因为iMessage
是在 Messages 应用程序中运行的唯一活动服务类型。但是,此响应与应用程序弹出菜单中显示的内容一致。
因此,假设逻辑遵循,我希望您可以按原样使用这两行,根据需要交换出数字,并计算出true
或{ {1}};或者,也许首先要弄清您的 Messages 应用程序是否具有“默认”服务,该服务会将不明确的性质分类。我的猜测是,如果有两种可用服务可供选择,它将更倾向于“ SMS”而不是iMessage,在这种情况下,以下脚本可能更合适:
false
注意::不同的语言环境可能使用不同的服务名称,英国系统上的AppleScript所指的use application "Messages"
name of service of buddy "12343" = "SMS"
在美国系统上可能是service "SMS"
,或者无论您身在何处。
通过运行service "Text Message"
,您可以轻松地对每个消息 service
的名称进行快速的初始检查。该列表将包含4或5个潜在的服务,但是很明显哪个适用于文本消息传递,并且有点模糊,但最终很明显哪个适用于iMessaging。