Saya melihat Anda memecahkan masalah Anda melalui diskusi, dan mempelajari tentang properti frontmost
untuk objek application
.
Jadi ini lebih merupakan tujuan untuk menyelesaikan apa yang awalnya Anda mulai.
@vadian benar dengan menyatakan:
Argumen aplikasi tell harus berupa konstanta (literal) karena terminologi dievaluasi pada waktu kompilasi.
Solusi untuk mengatasi hal ini adalah dengan tidak menggunakan terminologi. Terminologi mengharuskan aplikasi yang diinstruksikan dapat mencari terminologi yang digunakan dalam kamus skripnya, dan mengubahnya dari istilah yang mudah dipahami manusia menjadi kode peristiwa Apple mentah. Jadi singkirkan perantara, dan Anda dapat mengeluarkan pernyataan, memberikan perintah, dan mengambil properti melalui sintaks chevron mentah:
on run argv
set [appName] to argv
tell the application named appName ¬
to return its «class pALL»
end run
Kemudian, di terminal:
osascript ~/Scripts/getAppProperties.applescript "Brave Browser"
«class ChBB»:«class CrBF» id 1, frontmost:false, «class ChOB»:«class CrBF» id 2,
class:application, name:Brave Browser, version:83.1.10.97
Tentu saja, tanpa pencarian kamus, properti khusus aplikasi dan nilainya dikembalikan dalam sintaksis mentah.
Catatan: Memasukkan kode sintaksis mentah ke dalam Editor Skrip bisa jadi sedikit rumit, karena kode tersebut akan langsung dikompilasi dan istilah apa pun yang dipahami oleh Editor Skrip atau AppleScript (seperti properties
, yang memiliki fitur umum di seluruh papan dan dengan kode jenis yang sama). Namun Anda dapat membuat AppleScript di editor teks biasa apa pun. Jika Anda benar-benar harus mengkompilasinya menjadi file .scpt
, maka osacompile
akan melakukannya.
person
CJK
schedule
10.07.2020