当前位置: 首页 > 知识库问答 >
问题:

Apple许可地狱:osascript和可访问性(辅助访问)

司马高明
2023-03-14

Apple许可地狱:osascript和可访问性(辅助访问)。

错误:不允许osascript进行辅助访问。(-1719)

我在一个名为QuickenUpdate的文件中有一行脚本。scpt

在脚本编辑器中运行(works):

tell application "System Events" to tell process "Quicken" to click menu item "Update all Online Accounts" of menu "Accounts" of menu bar item "Accounts" of menu bar 1

运行在终端(工程):

/usr/bin/osascript /Deployment/bin/Stocks-1.01.03/scripts/QuickenUpdate.scpt

我有一个shell脚本(QU.sh)来运行这个。

#!/bin/bash
. ~/.bashrc
/usr/bin/osascript /Deployment/bin/Stocks-1.01.03/scripts/QuickenUpdate.scpt 2>&1
exit 0

如果我从BBEdit内部运行QU.sh,它会起作用。

如果我运行QU. sh从终端,它的工作原理。

如果我试图运行这个通过Launchd,它失败了:osascript是不允许辅助访问。(-1719)。

发射断层:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>Sec_Stocks_QuickenUpdate.job</string>
  <key>Program</key>
  <string>/Deployment/bin/Stocks-1.01.03/bin/QU.sh</string>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>9</integer>
    <key>Minute</key>
    <integer>45</integer>
  </dict>
</dict>
</plist>

您不能将osascript添加到辅助访问,因为它不是应用程序!

最令人沮丧的是,几周前我确实让它工作了,但不记得是怎么做到的。

我不得不对项目进行一些更改并重新部署它(它是使用ANT脚本构建和部署的更大项目的一部分)。

事实上,你必须跳越铁环才能让一个新的构建开始工作,这是荒谬的。

一个人到底是怎么得到许可的?

共有1个答案

权玉泽
2023-03-14

经过多次尝试和错误。。。

要使用“系统事件”来控制应用程序(例如:Quicken),shell脚本和目标应用程序都需要位于系统首选项中的隐私/可访问性列表中。无法手动添加shell脚本。

在系统首选项中手动添加目标应用程序。保持列表打开,然后通过launchd运行shell脚本(我使用“启动控制”应用程序运行作业)。

作业将失败,但shell脚本现在应该在可访问性列表中。选中它(打开它),然后脚本应该执行OK。

 类似资料:
  • 我编写了以下applescript来打开一个文档,同时在我的文字处理器应用程序中隐藏了一些恼人的持久工具栏。当我直接从脚本编辑器播放时,效果非常好。但当我把它变成一个应用程序,并尝试在阿尔弗雷德(而不是阿尔弗雷德2)中玩时,我得到了以下信息: 哦,我尝试了比“POSIX”更普通的路线,但都带来了相同的结果。此外,我正在运行最新版本的埃尔卡皮坦。

  • Jquery Mobile 是基于标准的,系统化的html构建的,使得页面能够在最广范围的设备上得到支持。对于A级的浏览器,许多Jquery Mobile组件,比"焦点管理","键盘导航"等都能支持,其他可以详细参加W3C的WAI-ARIA说明. 通过运用这些技术,我致力于使得通过Jquery Mobile开发的web产品拥有最好的可访问性,对于伤残人士,例如盲人,也可以用读屏软件,例如iphon

  • 我目前正努力用更多的发声来创建。背景是: 我想为用户在左右选项卡上添加“未选择选项卡[选项卡名称],单击两次以选择”和“已选择选项卡[选项卡名称]”到中间位置 我还想在单击选项卡时添加一个发声,以警告用户其内容已更改,并告诉聚焦中心选项卡 通过重写所有需要的类(例如:,,),并直接在选项卡上添加右侧的,我已经部分成功地完成了这项工作。它运行得相当好,但我不满意。这些类的维护需要针对Android主

  • JAVA访问修饰符的可访问性 公众 在 同一班级 同一套餐 子类 宇宙/其他软件包 我在互联网上寻找这些问题的答案,因为我有多个答案。一个视频说未声明的访问修饰符是公共的,而我看到另一个书面来源说未声明的访问修饰符在子类和其他包中没有限制。试图确认哪个是真的。

  • 问题内容: 与我的其他问题略相关:以下内容之间有什么区别: 同样,最后2个之间的差异是我最感兴趣的。 问题答案: 任何包中的类都可以访问公共类。 具有默认访问权限()的类仅对同一包中的其他类可见。 private和protected修饰符只能应用于内部类。 私有类仅对其封闭类以及同一封闭类中的其他内部类可见。 受保护的类对于同一包中的其他类以及扩展该封闭类的类都是可见的。

  • 我正在实现一个,用户可以在其中向左滑动以从列表中删除项目。 我希望我的应用程序是可访问的,我想知道是否有可能在对讲中以某种方式向用户宣布他需要刷卡,同时我也想知道我是否能捕捉到这个刷卡手势。 先谢谢你, 佩德罗