AppleScript: "beritahu saya untuk berhenti" - tergantung pada lingkungan?


1

Pernyataan "minta saya untuk berhenti" sangat berguna ketika Anda menjalankan applescript sebagai applet atau dari menu skrip, namun ketika mengembangkan atau men-debug skrip di Script Editor, itu sangat menjengkelkan karena keluar dari Script Editor daripada hanya menghentikan eksekusi dari naskah.

Dua pertanyaan:

  1. Apakah mungkin dari dalam skrip untuk memeriksa di lingkungan apa ia berjalan, sesuatu seperti

    jika lingkungan applet maka katakan padaku untuk berhenti menampilkan pemberitahuan "Selesai"

  2. Bagaimana cara keluar hanya skrip ketika dijalankan di Script Editor? Artinya, hasil yang sama seperti ketika Anda mengklik tombol stop di toolbar.

Jawaban:


2

Aplikasi Saat Ini

Anda bisa mendapatkan nama aplikasi saat ini. Jika namanya Script Editor, maka AppleScript Anda dijalankan di dalam editor:

display dialog (name of current application as text)

Mendeteksi Lingkungan

Atau, AppleScript Anda dapat mengakses variabel lingkungan melalui perintah atribut sistem . Anda harus dapat menentukan proses Anda melalui informasi ini. Untuk melihat HOMElingkungan jalur, gunakan:

display dialog (system attribute "HOME")

Menghentikan AppleScript

Untuk menghentikan skrip gunakan perintah kembali . Dalam cuplikan AppleScript di bawah ini, dialog tidak pernah ditampilkan:

return
display dialog "Hello World"

kembali keluar dari rutin saat ini dalam AppleScript; sangat mirip kembali dalam bahasa lain seperti c. Dipanggil dalam konteks rutin AppleScript utama, tidak ada yang kembali, jadi skrip selesai.

Bandingkan ini dengan tell me to quit, di mana cuplikan menyebabkan AppleEvent berhenti untuk dikeluarkan ke proses saat ini.


Terima kasih. Apa perbedaan antara "kembali" dan "katakan padaku untuk berhenti" di luar itu "katakan padaku" berhenti dari Editor Skrip jika skrip dijalankan dari dalamnya.
db

1
Saya telah memperluas jawabannya. Semoga ini bisa membantu.
Graham Miln
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.