Mail: Wordcount einer neuen Email

Via Script auf neue noch nicht verschickte Email-Nachrichten zuzugreifen ist in Mail (wohl auch noch unter V 5.2) nicht so ohne weiteres möglich. Stattdessen muss man sich mit UI-Scripting weiterhelfen, um sich z.B. die Anzahl der Worte des just verfassten Nachrichten-Textes anzeigen zu lassen.

tell application "Mail" to display alert ("Wordcount: " & my return_wordcount_new_mail_window())
on return_wordcount_new_mail_window()
  tell application "Mail" to activate
  ##new mail window in apple mail 5.2 (Lion 10.7.3)
  tell application "System Events"
    get system attribute "sysv"
    if result is greater than or equal to 4144 then -- Mac OS X 10.3.0
      if UI elements enabled then
        tell application process "Mail"
          try
            return count of every word of (get value of static text 1 of group 1 of UI element 1 of scroll area 4 of window 1)
          on error
            return "got an error"
          end try
        end tell
      else
        beep
        display dialog "GUI Scripting is not enabled" & return & return & "Open System Preferences and check Enable Access for Assistive Devices in the Universal Access preference pane, then run this script again." with icon stop
        if button returned of result is "OK" then
          tell application "System Preferences"
            activate
            set current pane to pane "com.apple.preference.universalaccess"
          end tell
        end if
      end if
    else
      beep
      display dialog "This computer cannot run this script" & return & return & "The script uses GUI Scripting technology, which requires an upgrade to Mac OS X 10.3 Panther or newer." with icon caution buttons {"Quit"} default button "Quit"
    end if
  end tell
end return_wordcount_new_mail_window
									


Ich habe den Code unter 10.7.3 getestet, es kann aber sein, dass er bei Umstellung des Mail-GUIs (bei einer älteren oder neueren Version) nicht funktioniert… die Tücken des UI-Scriptings halt ;-)

Leave a Reply