1. 程式人生 > >使用appscript+python來控制Mac下的GUI應用程式

使用appscript+python來控制Mac下的GUI應用程式

在Mac下,appscript是一個與應用程式通訊互動的強大工具。用Python的appscript模組,可以在不用學習appscript的情況下也能做到與很多應用程式互動的功能。 

開啟Mac的終端,安裝很簡單: 
sudo easy_install appscript 

然後執行ipython,先來試一個簡單有趣的例子: 
Python程式碼  收藏程式碼
  1. >> import osax  
  2. >> sa = osax.OSAX()  
  3. >> sa.say("Hello world", using="Victoria")  

怎麼樣,你的蘋果說話了吧──打破通常用無聲"Hello world”作為程式入門的慣例 :) 


下面是一個比較實用的例子,呼叫iTunes播放你喜歡的音樂: 
Python程式碼  收藏程式碼
  1. import appscript  
  2. iTunes = appscript.app("iTunes")  
  3. browserWindows = iTunes.browser_windows()  
  4. browserWindow = browserWindows[0]  
  5. playList = browserWindow.view()  
  6. track = playList.tracks[2]  
  7. print"Now playing the 2nd track:"
  8. print"-"*50
  9. print"Name:"
    , track.name()  
  10. print"Artist:", track.artist()  
  11. print"Genre:", track.genre()  
  12. track.play()  


儲存程式檔案play2nd.py,執行情況如下: 
Shell程式碼  收藏程式碼
  1. $ python play2nd.py   
  2. Now playing the 2nd track:  
  3. --------------------------------------------------  
  4. Name: Rainmaker  
  5. Artist: Yanni  
  6. Genre: New Age  


iTunes開始播放 :) 



對於iTunes,我們還可以編寫更多實用的例子: 
Python程式碼  收藏程式碼
  1. import appscript  
  2. iTunes = appscript.app("iTunes")  
  3. browserWindows = iTunes.browser_windows()  
  4. browserWindow = browserWindows[0]  
  5. playList = browserWindow.view()  
  6. for i in range(1,10):  
  7.         track  = playList.tracks[i]  
  8.         print"-"*50
  9.         try:  
  10.                 print"Name:", track.name().encode('utf8')  
  11.                 print"Artist:", track.artist()  
  12.                 print"Genre:", track.genre()  
  13.         except Exception,e:  
  14.                 pass

該程式的作用是,列出iTunes第一個列表中的前10首音樂。 


另外一個工作上比較實用的功能是,appscript+python還可以與FileMakerPro進行資料庫操作。這裡有一篇文章可供參考: 
http://wiki.python.org/moin/MacPython/FileMakerPro/AppscriptingOverview