标签: applescript

AppleScript 参考对象 - 帮助我理解它们

为什么这些甚至存在?这似乎很荒谬。与大多数动态语言一样,AppleScript 类型似乎是不可变的原始类型(如integers 和reals),它们将按值传递,与 一起使用没有任何意义a reference to,或者是类似对象的类型(如applications、scripts 或records,它们已经通过引用传递。怎样才算a reference to不完全多余呢?以下是摘自 Apple 的 AppleScript 语言指南 ( https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html )的示例:

tell app "Finder" to set diskRef to a ref to startup disk
--result: startup disk of application "Finder"
Run Code Online (Sandbox Code Playgroud)

那么你的意思是告诉我如果我这样做的话

tell app "Finder" to set diskObj to startup disk
--result: startup disk of application "Finder"
Run Code Online (Sandbox Code Playgroud)

applescript 运行时将向 Finder 进程发送一个 apple 事件,告诉它,“嘿 - 有人刚刚要求你将 /dev/disks01 的八位字节流返回给我!哈哈!我想他应该问一下为了a reference to它!让我们开始吧!这需要一段时间!”

我正在用 …

applescript reference pass-by-reference appleevents

5
推荐指数
1
解决办法
3383
查看次数

如何在 Applescript 中调用 Automator 变量?

在此处输入图片说明

所以我有一个显示对话框的 Applescript,然后自动机将变量设置为条目

例子 。. . 输入“AAAAAAA”查询变量将是“AAAAAAA”

我正在尝试找出一种在运行我的下一个 applescript 时调用变量的方法

我知道如何通过使用 sys.argv 1和 stdin -> 参数来使用 Python shell 脚本

我怎样才能用 Applescript 实现这一点?

我看到了一个类似的帖子标题,但答案没有解决这个问题

variables macos applescript arguments automator

5
推荐指数
1
解决办法
1万
查看次数

无法理解在 Applescript 中分配变量时发生的错误

我是 applescript 甚至这个社区的新手,所以这个问题似乎很奇怪。如果是这样,我很抱歉。但是我在谷歌搜索中找不到答案。所以让我问一下。

当我运行代码时

tell application "Evernote"
    set theNote to item 1 of selection
    set theTitle to (title of theNote)
end tell
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,说

/var/folders/fm/k76y42cs1y98bjwfyf951q1r0000gn/T/vbkvTSQ/55:47:53: execution error: Evernote got an error: Can’t make item 1 of selection into type specifier. (-1700)
Run Code Online (Sandbox Code Playgroud)

但如果我跑到下面

tell application "Evernote"
    set theNote to (selection)
    set theNote to item 1 of theNote
    set theTitle to (title of theNote)
end tell
Run Code Online (Sandbox Code Playgroud)

我可以得到预期的结果。

为什么会发生这个错误?我看不到两个代码的区别。

applescript

5
推荐指数
1
解决办法
742
查看次数

Applescript - Apple 事件超时

我正在尝试使用 applescript 打开一个非常大的 excel 文件 (*.xls)。代码非常简单,看起来可以正常工作,但是几分钟后我收到以下消息:

结果:错误“Microsoft Excel 出现错误:AppleEvent 超时。” 编号-1712

关于如何解决它的任何想法?顺便说一句,使用自动机也不起作用。

这是我的代码

    tell application "Microsoft Excel"
        activate
        open "/Users/sergioguerra1/Desktop/Detektor/Etapa II/Reporte General.xls"
        delay 300
    end tell
Run Code Online (Sandbox Code Playgroud)

excel applescript

5
推荐指数
1
解决办法
3905
查看次数

我需要在 AppleScript 中对字符串进行 URL 编码

我的脚本在网站上搜索歌曲,但是当有空格时它不会搜索,您必须添加下划线。我想知道是否有办法用下划线替换我的空格。你能不能用我现在的代码告诉我怎么做?

set search to text returned of (display dialog "Enter song you wish to find" default answer "" buttons {"Search", "Cancel"} default button 1)
open location "http://www.mp3juices.com/search/" & search
end
Run Code Online (Sandbox Code Playgroud)

applescript urlencode

5
推荐指数
1
解决办法
5405
查看次数

OSX Yosemite - 用于自动化访问枚举的 JavaScript

我开始尝试在 OS X Yosemite 中将我的一些 AppleScript 转换为 JavaScript,但我不明白我应该如何从应用程序访问枚举。例如 - Adium 的状态。

在 AppleScript 中:

tell application "Adium"
    if status type of global status is offline then
        log "offline"
    end if
end tell
Run Code Online (Sandbox Code Playgroud)

在 JavaScript 中,我不知道如何访问“离线”枚举:

if(Application('Adium').globalStatus.statusType == ?????) {
    console.log("offline");
}
Run Code Online (Sandbox Code Playgroud)

我尝试过简单的事情,比如“离线”,但没有成功。所有这些都是错误:

Application('Adium').StatusType("offline"); // error
Application('Adium').StatusType.offline;     // undefined
Application('Adium').StatusType.make({name:"offline"}); // error
Run Code Online (Sandbox Code Playgroud)

有人得到过这样的工作吗?

javascript macos applescript osx-yosemite-beta javascript-automation

5
推荐指数
1
解决办法
1157
查看次数

在 OS X JavaScript for Automation (JXA) 中附加事件侦听器

如何在 OS X JavaScript 中监听事件以实现自动化。

在消息应用程序的脚本库中有一个事件处理程序列表,例如messageSent和messageReceived。但是,我无法弄清楚如何使用它们。尝试传递函数会产生错误,而尝试将这些变量设置为新函数会导致 REPL 挂起。

设置这些事件处理程序的正确方法是什么?

javascript macos applescript automation javascript-automation

5
推荐指数
1
解决办法
1569
查看次数

Applescript 单击 Mac 状态栏中的特定应用程序

我有一个作为状态栏应用程序运行的 OS X 应用程序。我正在尝试进行测试自动化。有没有办法使用 Apple Script 单击状态栏应用程序?

下面给出的脚本仅适用于本机应用程序。

tell application "System Events" to tell process "SystemUIServer" to click menu bar item 1 of menu bar 1
Run Code Online (Sandbox Code Playgroud)

我正在寻找自定义应用程序上的类似功能。

testing macos applescript automation automated-tests

5
推荐指数
1
解决办法
1875
查看次数

使用 JavaScript 调用 Shell 脚本以实现自动化

使用 AppleScript,我可以使用以下命令调用 shell 脚本:

do shell script "echo 'Foo & Bar'"
Run Code Online (Sandbox Code Playgroud)

但是我在 Yosemite Script Editor 中找不到使用 JavaScript 的方法。

javascript applescript javascript-automation

5
推荐指数
1
解决办法
2184
查看次数

使用 Python 代替 AppleScript

我经常使用 Applescript 来完成基本任务,比如打开和关闭程序,有时会更深入一些,比如运行特定的 Xcode 程序的单元测试。我正在学习 Python,我喜欢它。我没能找到很多关于 AppleScript 和 Python 的文档。我的问题是:在 Mac OS X 上,可以使用 Python 代替 AppleScript 来完成上述任务吗?如果是这样,有没有人知道一个很好的资源来了解有关该主题的更多信息?

python macos applescript

5
推荐指数
1
解决办法
9210
查看次数