Bagaimana cara menggunakan AppleScript atau Automator untuk menghidupkan atau mematikan Waktu pada waktu yang ditentukan?

1

Saya suka Waktu Mengumumkan di siang hari saat saya sedang bekerja. Tapi aku menginginkannya ketika aku tidur.

Fungsi Jangan Ganggu Apple akan membisukan pemberitahuan dan suara yang terkait dengannya, tetapi itu tidak berpengaruh pada Pengumuman Waktu.

Di tempat lain di situs ini ada jawaban lama dari beberapa tahun yang lalu yang menawarkan skrip ini:

do script script "default write ./com.apple.speech.synthesis.general.prefs TimePengumumanPrefs -dict TimePengumumanDikaktifkan -menghubungkan YA"

Script serupa untuk mematikannya.

Jawaban lain dapat ditemukan di sini, tetapi kembali ke zaman Mountain Lion:

Bagaimana cara mengaktifkan "Umumkan waktu" secara terprogram?

Saya baru di sini dan pangkat pemula untuk Aapplescript. Saya belum mendapat hak berkomentar untuk mencari klarifikasi dari penulis jawaban yang disajikan.

Skrip ini tidak berfungsi pada Mac OS X High Sierra (10.13). Sementara skrip pertama akan dikompilasi, saat menjalankan tidak ada yang terjadi. Script dari halaman yang dirujuk bahkan tidak dapat dikompilasi. Kesalahan sintaksis tentang token yang tidak diketahui setelah pengidentifikasi.

Selain itu, membuat perubahan secara manual ke preferensi ini dalam pengaturan membutuhkan kata sandi saya untuk membuka kunci. Bisakah AppleScript atau Automator mengatasinya juga?

NormG
sumber
Ini seharusnya bekerja, cobalah mengubah "./" dalam skrip menjadi "~ / Library / Preferences /" dan cobalah.
Kyle
Nggak. Hasilnya adalah "". Mencobanya setelah memvalidasi untuk membuka kunci preferensi. Dapatkah AppleScript mengatasi rutinitas validasi yang memerlukan kode sandi saya untuk membuka kunci setiap preferensi, setiap saat.
NormG

Jawaban:

0

UPDATE: Ini berfungsi untuk saya menggunakan versi terbaru dari High Sierra.

Versi ini akan "nyalakan" "Umumkan waktunya:" jika belum diaktifkan

property thePassword : "yourpassword"

tell application "System Preferences"
    reveal anchor "ClockPref" of pane id "com.apple.preference.datetime"
    tell application "System Events"
        delay 0.5
        my enterPassword()
        set theValue to get value of checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        if theValue is 0 then
            click checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        end if
    end tell
    delay 1
    quit
end tell


on enterPassword()
    tell application "System Events"
        try
            click button "Click the lock to make changes." of window "Date & Time" of application process "System Preferences"
        end try
        delay 1
        --activate
        set value of text field "Enter password" of sheet 1 of window "Date & Time" of application process "System Preferences" to thePassword
        delay 1
        click UI element "Unlock" of sheet 1 of window "Date & Time" of application process "System Preferences"
    end tell
end enterPassword

Versi ini akan "mematikan" "Mengumumkan waktu:" jika sudah diaktifkan

property thePassword : "yourpassword"

tell application "System Preferences"
    reveal anchor "ClockPref" of pane id "com.apple.preference.datetime"
    tell application "System Events"
        delay 0.5
        my enterPassword()
        set theValue to get value of checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        if theValue is 1 then
            click checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        end if
    end tell
    delay 1
    quit
end tell


on enterPassword()
    tell application "System Events"
        try
            click button "Click the lock to make changes." of window "Date & Time" of application process "System Preferences"
        end try
        delay 1
        --activate
        set value of text field "Enter password" of sheet 1 of window "Date & Time" of application process "System Preferences" to thePassword
        delay 1
        click UI element "Unlock" of sheet 1 of window "Date & Time" of application process "System Preferences"
    end tell
end enterPassword

masukkan deskripsi gambar di sini


Saya dapat mengatur skrip untuk melakukan tindakan mengklik kotak centang "Umumkan waktu:" jika belum diaktifkan ... dengan pernyataan pengaturan bersyarat diaktifkan atau dinonaktifkan dari kotak centang itu selama waktu-waktu tertentu. Saya pikir, untuk saat ini, akan lebih mudah untuk menyimpan dua versi skrip yang berbeda. Satu versi untuk mengaktifkan kotak centang "Umumkan waktu:" dan satu versi untuk mematikan kotak centang "Umumkan waktu:". Di ScriptEditor, cukup simpan setiap versi skrip sebagai aplikasi. Dari sana cukup buka Calendar.app dan buat dua acara kalender baru. satu acara untuk mengaktifkan kotak centang "Umumkan waktu:" kapan saja Anda pilih. Dan acara lain untuk menonaktifkan .. Setelah Anda membuat acara,

masukkan deskripsi gambar di sini

wch1zpink
sumber
Maaf untuk mengatakan skrip gagal. Itu muncul Script Error yang mengatakan "Sistem Acara mendapat kesalahan. Tidak dapat mengatur Proses Aplikasi 'SecurityAgent' menjadi 'myactualpassword'" Pada saat yang sama, Ikon Preferensi Sistem memantul di dermaga untuk memberi tahu saya Preferensi Sistem sedang mencoba untuk membuka kunci Preferensi Tanggal dan Waktu dan meminta saya untuk mengizinkannya terjadi secara manual dengan memasukkan kata sandi saya. Jadi sebenarnya, ia ingin kata sandi saya dimasukkan secara manual di System Preferences untuk memungkinkan skrip memasukkan kata sandi saya di preferensi Tanggal & Waktu.
NormG
Tapi saya pikir skrip Anda sangat dekat, hanya perlu menyelesaikan fakta bahwa Apple ingin kata sandi dimasukkan dua kali di dua tempat. Juga, tentu saja, saya diminta untuk memberikan Script Editor kemampuan untuk mengendalikan komputer saya di bawah preferensi Aksesibilitas Privasi.
NormG
Saya memperbarui kode dalam jawabannya. Sekarang hanya berfungsi dengan High Sierra
wch1zpink
1
Kamu mendapatkannya! Bekerja dengan sempurna. Apple seharusnya membuat ini menjadi fungsi mengumumkan waktu. Itu akan menjadi kurva belajar yang panjang bagi saya untuk mencari tahu. Jadi terima kasih!
NormG