ASにはかなり新しいですが、私は似たような質問に出くわしていません。 AppleScriptを使用して、アプリケーションウィンドウのUIから情報を取得しています。ウィンドウには値 "Name"の静的テキストxがあり、静的テキストx + 1( "John Smith")となる次の静的テキストの値を取得したいとします。しかし、xの値はそれぞれの場合によって異なりますので、静的テキストを参照することはできません。特定の値(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の値を得ることができますか?