Deteksi jika pengguna menekan Stop


0

Saya memiliki program di mana pengguna dapat menekan Stop dan menghentikan program saat berjalan pada waktu tertentu.

Saya mencari cara untuk mendeteksi apakah pengguna menekan tombol Stop di Script Editor (menghasilkan -128 "User Cancelled" error), jadi saya bisa melakukan sedikit pembersihan sebelum program ditutup.

Apakah ada cara untuk melakukan ini?

Jawaban:


2

Anda dapat menggunakan blok percobaan seperti ini:

repeat -- your loop
    try
        --
        -- your code in the loop
        --
    on error err number n
        if n = -128 then -- User canceled
            --
            -- code to  cleanup before the program closes
            --
            return -- exit this script
        end if
    end try
end repeat

0

Editor Skrip berada di atas skrip. Jika satu hit berhenti di sana, tidak ada baris yang dieksekusi.

Jika, di sisi lain, Anda membuat aplikasi darinya, menekan tombol apa pun yang ditampilkan di sana (misalnya melalui display dialog), akan memicu apa pun yang Anda programkan untuk dilakukan tombol itu.


Dalam program saya, satu loop berjalan terus-menerus dan saya ingin bisa keluar kapan saja. Apakah ada cara untuk melakukan dialog dengan tombol yang dapat melakukannya?
user3932000

Jika Anda menggunakan loop (atau loop, yang tidak menunggu terlalu lama), Anda dapat meminta status variabel untuk keluar dari loop berulang. Tentukan variabel itu secara global dan ubah di dalam handler AppleScript yang disebut on quit. Ketika Anda menekan Application Menu> Quit(atau setara keyboard) program Anda akan berjalan melaluinya, ubah variabel dan keluar dari loop itu. Saya tidak dapat menemukannya dengan cepat, tetapi Apple memiliki PDF berjudul "Panduan Bahasa AppleScript", yang juga menjelaskan tentang on quitpenangannya dan harus memberi Anda ide lebih lanjut.
Phoenix

Jika Anda memperluas pertanyaan Anda dengan komentar Anda, saya juga akan melakukannya dengan jawaban saya.
Phoenix
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.