Maybe you will be interested by the handlers which I use to trigger menu items thru GUIscripting.
The long versions are useful to check the menu structure.
The short versions are those used in the final script.
--=====
(*
my selectMenu("Pages",5, 12)
==== Uses GUIscripting ====
*)
on selectMenu(theApp, mt, mi)
tell application theApp
activate
tell application "System Events" to tell process theApp to tell menu bar 1 to tell menu bar item mt to tell menu 1 to click menu item mi
end tell -- application theApp
end selectMenu
--=====
(*
my selectSubMenu("Pages",6, 4, 26)
==== Uses GUIscripting ====
*)
on selectSubMenu(theApp, mt, mi, ms)
tell application theApp
activate
tell application "System Events" to tell process theApp to tell menu bar 1 to tell menu bar item mt to tell menu 1 to tell menu item mi to tell menu 1 to click menu item ms
end tell -- application theApp
end selectSubMenu
--=====
(*
useful to get the indexs of the triggered item
my select_Menu("Numbers", 5, 16) (* Insert > FileName *)
*)
on select_menu(theApp, mt, mi)
tell application theApp
activate
tell application "System Events" to tell process theApp to tell menu bar 1
get name of menu bar items
(*{
01 - "Apple",
02 - "Numbers",
03 - "Fichier",
04 - "Édition",
05 - "Insertion",
06 - "Tableau",
07 - "Format",
08 - "Disposition",
09 - "Présentation",
10 - "Fenêtre",
11 - "Partage",
12 - "Aide"}
*)
get name of menu bar item mt
-- {"Insert"}
tell menu bar item mt to tell menu 1
get name of menu items
(* {
01 - "Feuille",
02 - missing value,
03 - "Tableau",
04 - "Graphique",
05 - "Figure",
06 - "Zone de texte",
07 - "Fonction",
08 - "Ligne de connexion",
09 - missing value,
10 - "Remplissage",
11 - missing value,
12 - "Rangs copiés",
13 - "Colonnes copiées",
14 - missing value,
15 - "Date et heure",
16 - "Nom du fichier",
17 - "Numéro de page",
18 - "Nombre de pages",
19 - missing value,
20 - "Commentaire",
21 - "Lien",
22 - "Saut de colonne",
23 - missing value,
24 - "Choisir."}
*)
get name of menu item mi
--{"Nom du fichier"}
click menu item mi
end tell
end tell
end tell -- application theApp
end select_menu
--=====
(*
useful to get the indexs of the triggered item
my select_SubMenu("Numbers", 6, 14, 3) (* Table > Footer rows > 2 *)
*)
on select_SubMenu(theApp, mt, mi, ms)
tell application theApp
activate
tell application "System Events" to tell process theApp to tell menu bar 1
get name of menu bar items
(*{
01 - "Apple",
02 - "Numbers",
03 - "Fichier",
04 - "Édition",
05 - "Insertion",
06 - "Tableau",
07 - "Format",
08 - "Disposition",
09 - "Présentation",
10 - "Fenêtre",
11 - "Partage",
12 - "Aide"}
*)
get name of menu bar item mt
-- {"Tableau"}
tell menu bar item mt to tell menu 1
get name of menu items
(* {01 - "Insérer un rang au-dessus",
02 - "Insérer un rang en dessous",
03 - missing value,
04 - "Insérer une colonne avant",
05 - "Insérer une colonne après",
06 - missing value,
07 - "Supprimer le rang",
08 - "Supprimer la colonne",
09 - missing value,
10 - "Rangs d'en-tête",
11 - "Colonnes d'en-tête",
12 - "Bloquer les rangs d'en-tête",
13 - "Bloquer les colonnes d'en-tête",
14 - "Rangs de bas de tableau",
15 - missing value,
16 - "Ajuster les rangs au contenu",
17 - "Ajuster les colonnes au contenu",
18 - missing value,
19 - "Afficher tous les rangs",
20 - "Afficher toutes les colonnes",
21 - "Activer toutes les catégories",
22 - missing value,
23 - "Fusionner les cellules",
24 - "Diviser en rangs",
25 - "Diviser en colonnes",
26 - missing value,
27 - "Répartir les rangs uniformément",
28 - "Répartir les colonnes uniformément",
29 - missing value,
30 - "Autoriser la sélection de bordure",
31 - missing value,
32 - "Afficher le panneau de réorganisation"}
*)
get name of menu item mi
--"Rangs de bas de tableau"
tell menu item mi to tell menu 1
get name of menu items
(* {
1 - "0",
2 - "1",
3 - "2",
4 - "3",
5 - "4",
6 - "5"}
*)
get name of menu item ms
-- "2"
click menu item ms
end tell
end tell
end tell
end tell -- application theApp
end select_SubMenu
--=====
Yvan KOENIG (VALLAURIS, France) samedi 3 avril 2010 16:37:35