什麼是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
- 告訴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的內容。