Dapatkan item pertama dalam daftar menggunakan AppleScript

3

Bagaimana cara mendapatkan item pertama dari daftar ke dalam variabel?

Saya mencoba untuk mendapatkan jendela pertama dari jendela aplikasi.

Saya mencoba

tell application "System Events"
    repeat with theProcess in processes
        if not background only of theProcess then
            if processName is "Xcode" then
                set theWindow to first window of windows
            end if
        end if
    end repeat
end tell

tapi ini melempar kesalahan ini:

Tidak bisa mendapatkan jendela dari setiap jendela.

Iulian Onofrei
sumber

Jawaban:

2

Kecuali jika Anda memiliki kebutuhan eksplisit untuk melakukannya dengan cara yang ditunjukkan dalam pertanyaan Anda, saya akan membuatnya lebih sederhana dan gunakan:

tell application "System Events" to set isRunning to exists (processes where name is "Xcode")
if isRunning then set theWindow to (first window of application "Xcode")

Kalau tidak, modifikasi yang ada blok kode dengan cara berikut akan mendapatkan hasil yang sama dengan dua baris kode atas:

tell application "System Events"
    repeat with theProcess in processes
        if not background only of theProcess then
            if name of theProcess is "Xcode" then
                tell application "Xcode"
                    set theWindow to first window of application "Xcode"
                end tell
            end if
        end if
    end repeat
end tell

Jika Anda ingin menggunakan dua baris pertama kode dalam jawaban saya di manned yang lebih tokenized, sebagai contoh, gunakan:

set appName to "Xcode"
tell application "System Events" to set isRunning to exists (processes where name is appName)
if isRunning then set theWindow to (first window of application appName)

Maka semua yang perlu Anda lakukan adalah mengatur appName ke aplikasi target di baris pertama kode dan dua baris kode mengikutinya berdiri apa adanya dan tidak perlu diedit untuk digunakan dengan nama aplikasi lainnya.

user3439894
sumber
Apa yang dilakukan isRunning kata kunci?
Iulian Onofrei
Saya tidak ingin nama jendelanya.
Iulian Onofrei
@Iulian Onofrei, isRunning bukan sebuah kata kunci , ini a variabel , yang diatur ke salah satu true atau false tergantung pada apakah prosesnya ada. Jika Anda tidak ingin nama jendelanya, apa yang Anda inginkan?
user3439894
Objek jendela, jika ada hal seperti itu. Saya entah bagaimana ingin mengambil beberapa kotak centang di jendela itu.
Iulian Onofrei
1
@Iulian Onofrei, saya pikir Anda melakukannya, tetapi ingin memastikan, dan juga memilikinya tersedia untuk orang lain yang mungkin membaca utas ini dan tidak memiliki pemahaman penuh tentang bagaimana kode bekerja. :)
user3439894