AppleScript介紹

什麼是AppleScript

AppleScript是蘋果公司推出的一種腳本語言,內置MacOS中,能夠直接操做控制MacOS 以及它的應用程序,是一個實現MacOS自動化的一個極其有力的工具,AppleScript的前身是 HyperCard所使用的腳本語言 HyperTalk。html

AppleScript的特色

與其餘的腳本語言Python 和JavaScript相比,AppleScript 最顯著的特色就是能夠控制其餘macOS上的應用程序,咱們能夠經過使用AppleScript 來完成一些繁瑣重複的工做,AppleScript語法簡單,接近天然語言,就像在和系統對話同樣。另外系統也提供了語法查詢字典,能夠很方便的查詢語法。app

AppleScript編輯器

MacOS 上有自帶的腳本編輯器,支持 AppleScript ,其中有模版工程、模版代碼、應用詞典等功能,很是方便腳本的編寫。編輯器

 

 

AppleScript基礎語法

按照慣例,用AppleScript寫一個Hello worlddisplay dialog 「Hello, world!」工具

 


而後運行,就能夠看到系統彈出了一個hello world的彈窗。spa

下面會介紹幾種經常使用的語法3d

  1. 告訴XX作XX 就像上邊說的那樣,AppleScript 的語法很是接近天然語言,若是你想讓一個應用作一些任務,就能夠直接告訴他就能夠。語法相似於
tell 應用
    作xx
end tell

eg:啓動Safari 而後打開花椒code

tell application 「Safari」
    activate
    open location 「https://www.huajiao.com/「
end tell

上面的代碼告訴了Safari啓動,而後打開花椒。這個很接近於英語的表達方式。htm

2.設置變量blog

set <變量名> to <值>接口

把花椒直播的網址設置爲變量huajiao

set huajiao to 「https://www.huajiao.com/「
tell application 「Safari」
    activate
    open location huajiao
end tell

把地址設置爲huajiao變量,而後打開

4.條件語句

if 條件 then
    …
else if 條件 then
    …
else
    …
end if

eg:

set huajiao to 「https://www.huajiao.com/「
set baidu to 「http://www.baidu.com」
set num to 1

tell application 「Safari」
    activate
    if num > 2 then
        open location huajiao
    else
        open location baidu
    end if
end tell

5.循環環語句

repeat
    …
    exit repeat
end repeat

repeat while
    …
end repeat

repeat with
    …
end repeat

eg:

repeat with num in [1, 2, 3]
    display dialog 「hello,word」
end repeat

6.模擬點擊輸入事件 系統會默認把全部支持AppleScript的應用的各類按鈕命名編號,相似於 button 1 、 window 1 能夠經過這些名字直接定位到應用的各類按鈕。找到你想要點擊的按鈕之後,就能夠作一些點擊輸入等操做

首先如何快速拿到各個應用的按鈕命名編號 1)能夠經過 entire contents來打印區域內全部的UI元素來查找元素,也最精確,例如打印qq頁面元素

 

2)能夠直接經過腳本編輯器內置的字典來查看已經安裝的全部支持AppleScript的應用,列出來全部支持 AppleScript 的 App,以及各個 App 所支持的接口調用。

 


3)介紹一個第三方的軟件(UI Browser)。能夠經過 直接看到各個軟件按鈕的名字,這樣就能夠方便的找到想點擊的按鈕。Target 選擇你要操做的程序,選中對應控件後,勾選Hightlight 對應控件會高亮顯示。例如找到QQ的登錄頁面關閉按鈕:window 1下的checkbox 2

 

找到這個元素後 1)click命令來點擊按鈕,keystroke輸入

click checkbox 2 of window 「Window」

2)使用輸入keystroke 輸入一段內容

keystroke 「abc」

或者key code 實現單個按鍵輸入(Complete list of AppleScript key codes) 3)set value of text field 1 of … to 「abc」

AppleScript 應用舉例

啓動登錄QQ

set username to 「123456789」
set qqpassword to 「zhoujielun」
#啓動QQ
tell application 「QQ」
    activate
end tell
delay 1
#輸入帳號密碼
tell application 「System Events」
    set value of text field 1 of window 「Window」 of application process 「QQ」 to username
    delay 2
    set value of text field 2 of window 「Window」 of application process 「QQ」 to qqpassword
    delay 1
    click checkbox 3 of window 「Window」 of application process 「QQ」
end tell

自動發送一個郵件

set theSubject to 「郵件標題」
set recipientName to 「test」
set recipientAddress to 「2541740067@qq.com」
set theContent to 「我是正文」

tell application 「Mail」
    set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:false}
    tell theMessage
        make new to recipient with properties {name:recipientName, address:recipientAddress}
    end tell
    send theMessage
end tell

AppleScript 小結

Apple Script 是一個macOS上很是簡單的UI自動化控制腳本語言,無需代碼基礎便可作一些自動化控制,一些系統自帶app和第三方app都暴露了不少供腳本調用接口,徹底能夠將不一樣的應用串接起來完成一些流暢的自動化操做。

從這裏能夠看到更多關於AppleScript的內容

相關文章
相關標籤/搜索