0
對於AS來說是新手,但我還沒有遇到過類似的問題。我正在使用AppleScript從應用程序窗口的UI中獲取信息。該窗口中有一個靜態文本x,其值爲「Name」,我想獲取下一個靜態文本的值,它將是靜態文本x + 1(「John Smith」)。然而,x的值隨每種情況而有所不同,所以我不能簡單地引用靜態文本9,因爲它可能是下一次靜態文本47。獲取具有特定值的靜態文本的索引號(AppleScript)
我現在的解決方案是獲取窗口中每個可用靜態文本的值,並將其添加到列表中。然後我找到值爲「Name」的第一個項目,並參考該項目+ 1以獲取我想要的實際名稱。但是,由於該窗口可能包含相當多的靜態文本,因此此方法需要一些不必要的時間。
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
有一個簡單的辦法讓靜態文本x的X具有一定的價值,所以我可以得到靜態文本X + 1的值?