Swift/AppleScript:无法从 Swift 代码运行 Apple 脚本

2023-12-04

我尝试从 Swift 代码运行 AppleScript 命令,如下所示:

 var appleScriptCmd = "tell application \"System Events\" to make login item at end with properties {path:\"" + appPath +  "\", hidden:false, name:\"Some App\"}";

var appleScriptCmd2 = "tell application \"System Events\" to set visible of process \"Safari\" to false";

然后我都尝试过:

let script = NSAppleScript(source: appleScriptCmd2)!;
        var errorDict : NSDictionary?
        script.executeAndReturnError(&errorDict)
        if errorDict != nil { print(errorDict!) }

或更旧的方法:

Process.launchedProcess(launchPath: "/usr/bin/osascript", arguments: ["-e", appleScriptCmd])

两者都不起作用,并且我尝试过的两个命令同时都可以使用 osascript -e“某些命令”工具从终端程序运行。


由于您的应用程序是沙盒的(项目设置 > 功能打开应用程序沙箱)你有三个选择:

  • Add 临时权利对于您想要使用的应用程序。
  • 将您的脚本放入相应的目录中~/Library/Application Scripts/并使用NSUserAppleScriptTask.
  • 实现 AppleScriptObjC 桥并从 ASOC 框架运行 AppleScript 代码(还需要 Objective-C 桥接头文件)。

在沙盒应用程序中NSAppleScript拒绝工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift/AppleScript:无法从 Swift 代码运行 Apple 脚本 的相关文章

随机推荐

  • Ado.net (2.0+) 连接池是在应用程序域之前还是每个进程

    我试图理解汇集理论 ADO NET 和 SQL Server 之间的交互要好得多 但尚未找到明确的答案 我一直假设每个进程 但我突然想到它可能是每个应用程序域 任何深入的参考文献也将不胜感激 连接池是一个复杂的野兽 因为它们是在几个不同的范
  • 如何使用 Node 中的 Promises 一次并行异步多个请求

    数组和循环 但我希望能够并行运行所有它们 因为我不想一个接一个地运行 我基本上想将所有端点调用状态代码 正文和时间存储为数组 并将它们作为结果返回 无论端点中是否存在错误 我正在使用 Bluebird 如何利用它的功能来解决这个问题 您可以
  • 每个子图的旋转轴文本

    我正在尝试绘制散点矩阵 我正在建立这个线程中给出的示例matplotlib中有制作散点图矩阵的函数吗 在这里 我只是稍微修改了代码 使轴对所有子图都可见 修改后的代码如下 import itertools import numpy as n
  • 如何将 c# 的 byte[] 转换为 java byte[]

    我有这段 C 代码 byte t 6 250 215 但在Java中是 byte t 6 6 41 如何解决这个问题呢 如何解决这个问题呢 第一个是关于java如何表示数据类型 byte 字节数据类型是 8 位有符号二进制补码整数 它的最小
  • 如何使用 redux 存储变量更新 FieldArray 元素

    我将 redux form 与 FieldArray 一起使用 默认情况下 数组中将有 1 个元素 并且它是从 JSON 填充的 我最多可以添加 3 个 FieldArray 组件中的元素 在下面的代码中 elementList 属性来自
  • Android模拟器UDP无法接收;在手机上运行良好

    您好 我正在尝试连接到网络上的盒子 它上面有一个正在运行的 UDP 服务器 使用下面的代码 我可以与盒子通信并从我的手机发送 接收 UDP 数据包 但是 我不知道如何使用 android 模拟器进行设置 我在 StackOverflow 以
  • Firebase 合并 Android 中的类似通知

    我们在 SIP 应用程序中使用 Firebase 以便在应用程序离线时向我们发送未接来电通知和聊天通知 虽然发送和接收工作正常 但我们对 Android 客户端产生了影响 5 个未接来电 obv 会生成 5 个未接来电通知 填满客户端设备上
  • SQL语句证明R(ABCD)中的A->B

    如何编写一个 SQL 语句来证明函数依赖 A B 在已知没有记录具有 NULL 值的情况下与属性 ABCD 存在关系 SELECT from R r1 R r2 where r1 A r2 A and r1 B lt gt r2 B 如果
  • 如何隐藏 Google Blogger 主页上具有特定标签的所有帖子?

    让我们考虑一下 编码 技术 日记 是博客上的一些标签 我不想在主页上显示所有 日记 标签的帖子 以及我其余的标签帖子 那么我想做什么 我希望 XML 代码能够隐藏主页中带有一些标签的帖子 我在 yahoo google yandex 等搜索
  • 使用 python 文件启动 ipython 笔记本

    我对 python ipython 不太熟悉 但有人问我是否可以使用特定的 python 文件启动 ipython 笔记本 然后它可以用于调试 然后 另一个软件会在临时文件夹中创建一个 py 文件 并使用该文件调用 ipython 笔记本
  • 多线程检查队列中的成员资格并停止线程

    我想使用 2 个线程迭代列表 一个来自前导 另一个来自尾随 并将元素放在一个Queue在每次迭代中 但在将值放入之前Queue我需要检查其中的值是否存在Queue 当其中一个线程将该值放入Queue 所以当发生这种情况时 我需要停止线程并返
  • 服务器因 Meteor + 异步结果不匹配而在 HTTP.call 上崩溃

    我尝试使用 Meteor 的 HTTP 库进行一些基本的 GET 调用时得到两个非常奇怪的结果 这些相同的请求可以在 Curl 和 python 中正常工作 因此它不在 API 一侧 1 结果与异步回调结果不一致 我在我的流星方法中使用以下
  • 未选择 HABTM 下拉项目

    我创建了一个网站来学习 CakePHP 但由于某种原因 我无法获得多选下拉框来显示我所选择的项目 在此示例中 1 个视频游戏可以有多种难度 简单 普通 困难 在我的游戏编辑页面上 我有一个多选框来选择困难 它显示了所有三个困难 我可以选择它
  • 计算 Git 分支上的提交次数

    我已经找到了这个答案 git 中分支的提交数量但这假设分支是从 master 创建的 如何计算分支上的提交数量without依赖于这个假设 在 SVN 中这是微不足道的 但由于某种原因在 git 中确实很难弄清楚 要计算您所在分支的提交 g
  • 为文本着色

    如何使用 Bash 显示彩色文本 a 棕色背景上的白色文本 b 黄底黑字 echo e bbb aaa bbb and echo e aaa bbb aaa 我的结果不太好 text black e 0 30m white e 0 37m
  • Stripe webhooks 事件顺序

    我目前正在构建一个使用 Stripe 进行支付的节点应用程序 我已经设置了 webhooks 并正在工作 因为我想在我的应用程序中创建订阅者 但需要来自 stripe webhooks 的响应来存储我的 mongo 数据库中不同集合中不同事
  • 在运行时替换包中的图像

    我可以在运行时替换包中的图像吗 基本上 我的捆绑包中有一些图像 如果图像有任何更改 我也会从服务器获取它们 我可以在运行时将它们放入包中 这样我就不需要更改代码来选择图像吗 您无法更改应用程序包的内容 但是 可以将图像存储在应用程序的文档文
  • 非线性代数方程的初步猜测

    我有一个非线性代数方程组需要求解 如何使用计算值 具有连续时间变化 作为解变量的初始猜测 而不是使用参数作为起始值 初始方程部分可以用于此目的吗 我创建了一个测试模型来解释这个问题 model Teststartvalue Real val
  • R安装包tabplot

    当我安装 R 包 tabplot 时 出现了以下消息 我的 R 版本已更新为 4 0 4 因为 4 0 2 有相同的错误 错误信息如下 install packages 中的警告 包 tabplot 不适用于此版本的 R 适用于您的 R 版
  • Swift/AppleScript:无法从 Swift 代码运行 Apple 脚本

    我尝试从 Swift 代码运行 AppleScript 命令 如下所示 var appleScriptCmd tell application System Events to make login item at end with pro