toggle playPause untuk iPhoto, masalah skrip, mungkin variabel global


1

Saya perlu beralih playPause untuk iPhoto, jadi saya menulis skrip ini

global isPaused
try
    get isPaused
on error
    set isPaused to false
end try
tell application "iPhoto"
    if slideshow running then
        if isPaused then
            resume slideshow
        else
            pause slideshow
            set isPaused to true
        end if
    else
        start slideshow
    end if
end tell

Saya mengirim perintah ini melalui ssh (dengan osascript -e '% s') dan fitur resume tidak berfungsi (mulai dan berhenti bekerja dengan benar).

jadi saya menulis skrip pembantu

try
    get toggle
on error
    set toggle to false
end try
tell application "iPhoto"
    if toggle then
        start slideshow
    else
        set toggle to true
    end if
end tell

ini berfungsi dengan benar ketika saya menjalankannya melalui editor AppleScript, tetapi tidak jika saya menjalankan kode ini melalui ssh.

[diedit] Saya menjalankan skrip dengan cara ini:

osascript -e 'try
get toggle
on error
set toggle to false
end try
tell application "iPhoto"
if toggle then
start slideshow
else
set toggle to true
end if
end tell'

Bisakah kita melihat perintah ssh dan osascript saat Anda memasukkannya ke dalam baris perintah.
Tony Williams

Saya baru saja menambahkannya di pertanyaan saya
qbait

Jawaban:


1

Saya memecahkan masalah saya, variabel global telah direset, sekarang saya menyimpan variabel dalam file, berikut adalah kodenya:

set thePath to (get path to scripts folder from user domain as text) & “myTempFile.scpt"

script theData
    property IsPaused : missing value
end script

try
    set theData to load script file thePath
on error
    set IsPaused of theData to false
end try

tell application "iPhoto"
    if slideshow running then
        if isPaused of theData then
            resume slideshow
        set isPaused of theData to false
        else
            pause slideshow
            set isPaused of theData to true
        end if
    else
        start slideshow
    set isPaused of theData to false
    end if
end tell

store script theData in file thePath replacing yes
return IsPaused of theData
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.