标签: applescript

Applescript和iCal互动

我正在尝试编写一个AppleScript来查询iCal,并在任何日历中查找我在给定日期获得的所有事件.

我首先编写了一个简单的脚本,它可以对给定日历中的每个事件执行简单的操作:

tell application "iCal"
  tell calendar "Reuniones"
    set the_events to every event
    repeat with an_event in the_events
        -- do something with every event
        set value to summary of an_event
    end repeat
   end tell
end tell
Run Code Online (Sandbox Code Playgroud)

但是,这个简单的脚本需要花费很多时间来执行(几秒钟),即使我在循环中没有做任何复杂的事情.我担心真正的脚本会花费很多时间来执行.

我对Applescript不太熟悉,因此我想我正在做一些具有严重性能影响的傻事.

任何人都可以解释为什么这需要那么多来执行?任何人都可以建议改进我的代码吗?我现在要开始检查事件的日期,循环中有一个条件.我怀疑必须有一种方法来搜索带有日期的事件(比如Automator动作),但是我无法找到一种"原生"方式来做到这一点....

编辑:我正在使用Mac OS X Tiger(10.4).新版本的iCal可能改进了可用的操作库.

icalendar applescript

3
推荐指数
1
解决办法
5371
查看次数

AppleScript:如何退出所有正在运行的用户应用程序,然后重新启动到bootcamp分区(这部分有效)?

我经常在Mac Pro(e2008)(Mac OS X 10.5.6)的bootcamp分区上重启Windows.因为我喜欢花时间重新启动其他东西,而不是只是坐在那里我想编写/执行一个基本上可以做的简单的AppleScript:

  1. 退出所有正在运行的用户应用程
  2. 然后* - 应用程序已正确退出后 - *重新启动到我的bootcamp分区

第2部分我已经使用了一段时间,我在网上找到的脚本如下:

do shell script "bless -mount /Volumes/WinVista/ -legacy -setBoot -nextonly" with 
administrator privileges
do shell script "shutdown -r now" with administrator privileges
Run Code Online (Sandbox Code Playgroud)

这很好用,除非应用程序打开它们没有正确关闭(基本上它们正在'强制退出')所以我想先让脚本关闭应用程序然后执行重启.

我在Stack Overflow上发现了类似的问题,但由于我对AppleScript的理解几乎不存在,我不知道如何将这个结合起来:( 使用Applescript退出所有应用程序?)和重启的脚本.

这可能吗?如果是这样,我将不胜感激,你可以向我投掷任何建议/帮助/脚本.

此外,我几乎没有AppleScripting的经验,到目前为止我所做的只是复制/粘贴我在网上发现的内容,以防万一.

谢谢你的阅读.

Jannis

macos applescript restart bootcamp

3
推荐指数
1
解决办法
5497
查看次数

使用AppleScript控制Spotify

基本上我想做的是通过AppleScript播放整个专辑.现在,您可以使用他们的特殊URI来加载相册,但不能播放它.您也可以播放特定的曲目,但一旦完成播放,您的队列将恢复以前播放的内容.

Spotify的脚本字典有点薄,有没有人知道是否有计划增加它的深度?

applescript spotify

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

Mac - 列出终端中打开的窗口

我想列出终端中打开的窗口,以获得xwininfo -root -treeX11的x,y,宽度和高度.

我试过了:

osacript -e tell application "Microsoft Word" to get the bounds of the front window
Run Code Online (Sandbox Code Playgroud)

但它并不适用于所有应用程序而您无法指定子项(如果您有两个Word文档,则返回第一个打开的文档).

macos applescript osascript

3
推荐指数
1
解决办法
5645
查看次数

如何在OS X上按顺序运行多个脚本文件?

我有10个脚本文件,每个文件最多包含100个命令(每个命令需要1分钟)。此刻节省了我的时间,我只单击一个文件即可执行100个命令,但是我想要的是另一个脚本文件,该脚本文件顺序执行10个脚本文件,而不是等待每个脚本文件完成,然后单击它来执行第二个脚本文件。

macos applescript batch-file

3
推荐指数
1
解决办法
7834
查看次数

Spotify的"播放器状态"在编辑器中可用,但在打包的应用程序中,它只能获得"«常量****kPSP»"

这是一个测试代码:

tell application "Spotify"
    set playerState to player state as string
end tell
display dialog playerState
Run Code Online (Sandbox Code Playgroud)

AppleScript编辑器可以正常工作.但是,当我将我的脚本导出为应用程序时,我得到的是: 在此输入图像描述

为什么会这样?

applescript spotify

3
推荐指数
1
解决办法
1179
查看次数

调整所有正在运行的应用程序的所有窗口

我正在尝试编写一个applescript脚本,允许我随时调整所有正在运行的应用程序的窗口大小(我目前使用Stay,但发现它有时很麻烦,所以我想"重新发明"它)
我一直在关注一些applecripting教程并提出以下代码来做到这一点,但它是错误的:

tell application "Finder"
    set rect to bounds of window of desktop
end tell

property excludedApplicationNames : {"Finder"}
tell application "System Events"
    say "a"
    repeat with theProcess in processes
        say "b"
        if background only of theProcess is false then
            say "c"
            set theProcessName to name of theProcess as string
            if theProcessName is not in excludedApplicationNames then
                say theProcessName
                tell application theProcess
                    set bounds of windows of process theProcess to rect
                end tell
            end if
        end if
    end …
Run Code Online (Sandbox Code Playgroud)

macos applescript resize window

3
推荐指数
1
解决办法
2305
查看次数

如何将Microsoft Word中当前所选段落的段落编号获取到AppleScript变量中?

这是对原始问题的扩展,当前段落的编号是多少?我如何获得它?,这很好地回答了iWork Pages的问题。http://macscripter.net/viewtopic.php?id=29125

我想在Microsoft Word中做同样的事情。我找到了可以获取段落编号的VBA脚本(请参见下文),但是我不知道VBA脚本的工作原理,因此我被卡住了(也请参见下文)


更新17-05-2013

有两种解决方案。在阅读了VBA并检查了代码之后,我意识到了VBA脚本如何确定段落编号。实际上,这很简单。它设置从字符0到光标位置的范围,然后计算该范围内的段落。

因此,我看到了两种可能的解决方案:

  1. 使用VBA的AppleScript等效项CurPos来创建范围从文档位置0到位置的范围cursor。计算范围内的段落。
  2. 使用VBA脚本将段落编号设置为变量并通过AppleScript访问该变量

我的最终目标是对文档进行遍历,以查找所有表并在其前后插入分节符。

以下VBA脚本提供了一个弹出对话框,其中显示了我需要的数据以及更多信息(段落,绝对行号,相对行号)。也许有人可以帮助我将此脚本的输出设置为我可以通过AppleScript访问的文档变量

Open this Scriplet in your Editor:

get variable value of variable "paragraphNum" of active document
Run Code Online (Sandbox Code Playgroud)

这是VBA脚本:

Option Explicit

Sub WhereAmI()
    MsgBox "Paragraph number: " & GetParNum(Selection.Range) & vbCrLf & _
        "Absolute line number: " & GetAbsoluteLineNum(Selection.Range) & vbCrLf & _
        "Relative line number: " & GetLineNum(Selection.Range)
End Sub


Function GetParNum(r As Range) As Integer
    Dim rParagraphs As Range
    Dim CurPos As Integer

    r.Select …
Run Code Online (Sandbox Code Playgroud)

applescript vba ms-word word-vba

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

AppleScript在Xcode中单击"运行"

我之前从未使用过AppleScript,但我正在尝试编写一个脚本,它将打开Xcode并在正确的模拟器上运行正确的应用程序.不幸的是,我一直陷入语法错误,我对文档感到有些困惑(对于一种设计成英语的语言,它给了我更多麻烦而不是它的价值).我想出了如何使用"激活"命令打开Xcode,但我仍然坚持如何单击特定按钮.从我的理解,我应该能够说出类似的东西click button 1 of group 1 of window 1或类似的东西,但不仅是给我语法错误(我试过的许多变种),但我也不知道如何找出哪个窗口是窗口1,哪个组是组1,等等我尝试使用辅助功能检查器,但无法从头开始.谁能指出我正确的方向?

编辑 这不是链接问题的重复.那个问题是关于运行构建命令.我想实际点击Xcode中的按钮,并尝试使用模拟器运行"运行"命令.

xcode applescript

3
推荐指数
1
解决办法
1408
查看次数

有没有办法使用AppleScript在VLC中打开文件?

我想获取现在在VLC中打开的文件的全名。

我只发现了这一点:

tell application "VLC"
    set current_file to name of first window
end tell
Run Code Online (Sandbox Code Playgroud)

但是它将返回current_file当前窗口的标题,该标题只是没有扩展名的文件名。而我需要一条完整的道路。

我能做得到吗?

谢谢。

macos applescript vlc

3
推荐指数
1
解决办法
415
查看次数