Macでのカスタムスクリプトコマンド

AppleScriptは、Mac OS Xに組み込まれている強力なスクリプト言語です。AppleScriptを使用する目的は、反復的で面倒で時間のかかるタスクを自動化することです。AppleScriptの利点の1つは、AppleScriptを使用するために天才プログラマーである必要がないことです。実際、プログラミングの経験も必要ありません。

appleScriptを使用して、OSXでターミナルをすばやく呼び出します

os xの多くの関数は、Apple独自のAutomator.appを介して作成でき、このメソッドを使用して、任意のプログラムのショートカットキーを作成できます。

1.最初のステップは、Automator.appを開くことです。スポットライトでAutomatorを検索して、開くことができます。


Automator


2. [新規]を選択してから、[サービス]を選択します


サービスを選択

3.受信したサービスが入力なしとして選択されます


選択する

次に、左側のサイドバーで[AppleScriptの実行]をダブルクリックします


Snip20151226_6.png

4.編集領域に入力します


入る

次に、AppleScriptを記述し、ctrl + sを押してOpenTerminalとして保存します。スクリプトのtellアプリケーション「Terminal」の「Terminal」を別のプログラム名に変更するだけで、他のプログラムのショートカットキーを作成できます。

5.ショートカットキーを設定する
[システム環境設定]-> [キーボード]-> [ショートカットキー]を開きます


ショートカットキーを設定する

キーボードショートカット設定の左側の列でサービスを選択すると、[ターミナルを開く]が表示され、ショートカット設定を完了します。私のショートカットキーはalt + contrl +1に設定されています。

AppleScript辞書

辞書を開くには、AppleScriptEditorで[ファイル]-> [辞書を開く]メニュー(またはショートカットキーShift-Command-O)を選択します。たとえば、開いている辞書を参照し、プログラムMailを見つけて[選択]を押すと、次のウィンドウが表示されます。


AppleScript 字典

在左边的列中包含了指令和物件的 “套件”。当你选择了一个套件,你会在下面的显示窗中看到此套件所包含的所有东西。你可以通过点击第二列及第三列里的命令来缩小预览的范围。套件包含了 “指令” (圆形的C图标)和 “类” (方形的C图标),而 “类” 包含了 “属性”(P图标)和 “元素”(E图标)。

使用 Mail 字典来创建邮件变量

由于我们完全不知道怎么告诉 Mail 去创建一个新的邮件信息,所以我们必须借助于 AppleScript 字典。如果你点击一下 “Standard Suite” 你会看到一些 AppleScript 自带的公共标准命令。由于我们是要 “创建” 一个新的邮件信息,我们通过向下浏览来找到相关的命令,你会发现里面没有 “create” 这个命令,但在向下滑到差不多中间的部分你会找到 “make” 这个命令。听起来貌似不错,所以创建一个新的邮件系统,其实是要告诉 AppleScript 我们要 “make” 一些东西。

接下来点击最左列的 “Mail” 套件。我们刚才已经找到动作是 “make”,所以在这里我们跳过所有“指令”(动词)不看,直接翻到下面的 “类”(名词)中。我们第一个看到的类是 “outgoing message”,太好了这就是我们要的,因为我们就是要发出一个新的邮件信息。接着点击 “outgoing message” 类然后看下面显示的属性说明。

我们需要把第一步创建的几个简单变量插入到新邮件变量中。但在下面的 “outgoing message” 属性列表中,我们只找到邮件标题和内容的属性,而没看到收件人相关的属性。现在我们知道引用这些属性的正确语法了。注意,字典告诉你的是属性的定义格式。比如 subject 这个属性,我们定义的方法是 “subject:你想打的标题字样”。


outgoing message

同样你会在套件中找到一个叫 “send”的指令,我们会使用这个指令来发送邮件。现在我们还需要知道正确表达收件人名字和收件人邮箱地址的语法。由于不在这个套件中,我们点击 “Message” 套件。向下浏览到差不多一半的时候我们找到 “receipient” 这个类,点击这个类会看到他的属性列表,同样我们可以通过简单的英文来引用这个类的属性,它的属性包括 “name” 和 “address”。

你可以使用字典窗右上角的搜索栏快速的搜索你需要的类或属性等。

创建我们的邮件信息

--Variables
set recipientName to "John Doe"
set recipientAddress to "[email protected]"
set theSubject to "AppleScript Automated Email"
set theContent to "This email was created and sent using   AppleScript!"

--Mail Tell Block
tell application "Mail"

--Create the message
set theMessage to make new outgoing message with   properties {subject:theSubject, content:theContent, visible:true}

end tell

创建了一个 tell 命令块来包住所有发送给 Mail 应用程序的命令。然后我创建了一个变量(theMessage)并让他去 “make” 一个新的 “outgoing message”而且指定上面说到的它的属性。需要注意的是属性组需要用{}来包住,每个属性间用逗号分隔。

设置收件人和发送邮件

--Variables
set recipientName to "John Doe"
set recipientAddress to "[email protected]"
set theSubject to "AppleScript Automated Email"
set theContent to "This email was created and sent using AppleScript!"

--Mail Tell Block
tell application "Mail"

--Create the message
set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}

--Set a recipient
tell theMessage
    make new to recipient with properties {
   
   name:recipientName, address:recipientAddress}

    --Send the Message
    send

end tell
end tell

theMessage 指向的是一个 outgoing message 类的实例,我们在前面查 outgoing message 类的时候,看到除了属性列表外,前面还有一个叫 Elements 的说明,这里说明的是这个类具有这些元素,其中就包括一个叫 to recipient 的元素。那么这里就比较好理解了,“tell theMessage make new to recipient” 这句就可以理解为告诉 theMessage 这个实例创建(或者叫设置)它自己的 to recipient 元素,当然用的就是后面跟的 properties 了。

最后我们执行 “send” 指令来发送我们的邮件。注意最下面我们用了两次 end tell,因为有两个 tell 命令块需要关闭。当你修改完一些输入的错误并编译完成后点击 “Run”,Mail 程序应该会自动创建一封邮件并且发出。


发送

收件箱

おすすめ

転載: blog.csdn.net/wu347771769/article/details/55263144