Hello
Robert Poland sent me one of the offending script.
Here is a part of this one for two reasons :
(1) I wish to know how it behaves when executed on eastern languages because I'm not sure that the scheme which I use to extract the key string identifying the entries interesting Robert behave well with these languages. I have used a quick and dirty code to trigger the correct row — Mission Control one – because it's row 2 on my French iMac but row 3 on Robert's one.
(2) It would be fine to save it as an application and run it at least under English speaking machines. I'm puzzled because Robert get a behavior different than the one which I get here. Here I'm urged to include the app in the list of applications having permission to apply upon an other one and when I do that, the app is really allowed to apply.
—[SCRIPT] tell application "System Preferences" set switchTo_loc to localized string "Switch to Space 1" from table ¬ "DefaultShortcutsTable" in bundle file ((path to system folder as text) & "Library:PreferencePanes:Keyboard.prefPane:") end tell # Keeps only the string before the digit 1 set switchTo_loc to item 1 of my decoupe(switchTo_loc, "1")
tell application "System Preferences" activate reveal anchor "shortcutsTab" of pane id "com.apple.preference.keyboard" end tell # application "System Preferences"
tell application "System Events" activate tell process "System Preferences" tell window 1 to tell splitter group 1 of tab group 1 tell table 1 of scroll area 1 # Code identifying the entry entitled "Mission Control" set theRow to 0 repeat with r from 1 to count rows if name of first static text of row r is "Mission Control" then set theRow to r exit repeat end if end repeat if theRow > 0 then # select the correct row (2 in French, 3 in English) select row theRow else error "There is no Mission Control entry !" end if end tell set numSpaces to count (UI elements of rows of outline 1 of scroll area 2 whose name begins with switchTo_loc) end tell # "Keyboard" end tell # process "System Preferences"
# tell application "System Preferences" to quit
end tell # System Events
#=====
on parle_anglais() return (do shell script "defaults read 'Apple Global Domain' AppleLocale") does not start with "fr_" end parle_anglais
#=====
on decoupe(t, d) local oTIDs, l set {oTIDs, AppleScript's text item delimiters} to {AppleScript's text item delimiters, d} set l to text items of t set AppleScript's text item delimiters to oTIDs return l end decoupe
#===== —[/SCRIPT]
Yvan KOENIG (VALLAURIS, France) jeudi 19 décembre 2013 22:07:44
|