Assez nouveau à AS, mais je n'ai pas rencontré une question similaire. J'utilise AppleScript pour obtenir des informations à partir de l'interface utilisateur d'une fenêtre d'application. La fenêtre a un texte statique x avec la valeur "Nom", et je veux obtenir la valeur du texte statique suivant, qui serait le texte statique x + 1 ("John Smith"). La valeur de x diffère cependant dans chaque cas, donc je ne peux pas simplement me référer au texte statique 9 car il peut s'agir de texte statique 47 la prochaine fois.Obtenir le numéro d'index du texte statique avec une certaine valeur (AppleScript)
Ma solution est maintenant d'obtenir la valeur de chaque texte statique disponible dans la fenêtre et l'ajouter à une liste. Ensuite, je trouve le premier élément avec la valeur "Nom", et se référer à cet élément + 1 pour obtenir le nom réel que je veux. Cependant, comme la fenêtre peut contenir beaucoup de textes statiques, cette méthode prend du temps.
set MyList to {}
tell application "System Events" to tell process "cBK" to set y to count static text of scroll area 2 of splitter group 1 of window 1
repeat with x from 1 to y
tell application "System Events" to tell process "cBK" to set end of MyList to value of static text x of scroll area 2 of splitter group 1 of window 1
end repeat
on findFirst(lst, val)
local lst, val, i
try
if lst's class is not list then error "not a list." number -1704
if {val} is not in lst then return 0
script k
property l : lst
end script
repeat with i from 1 to count of k's l
if k's l's item i is val then return i
end repeat
on error eMsg number eNum
error "Can't findFirst: " & eMsg number eNum
end try
end findFirst
set Name to item (findFirst(MyList, "Name") + 1) of MyList
Yat-il un moyen simple d'obtenir x x texte statique avec une certaine valeur, donc je peux obtenir une valeur de texte statique x + 1?