Il salvataggio di Applescript rimuove i caratteri

2

Ho scritto un Applescript per avviare e posizionare due istanze di un'applicazione. Lo script funziona perfettamente nell'editor usando questo codice:

tell application "App" to activate
tell application "System Events" to tell application process "App"
    set position of window 1 to {8, 22}
end tell
tell application "App 2" to activate
tell application "System Events" to tell application process "App 2"
    set position of window 1 to {914, 22}
end tell

Non è un'app scriptable, quindi sto usando gli eventi di sistema (ho anche cambiato il CFBundleName della seconda app, in modo che includa il 2 per differenziare i processi). Tutto funziona perfettamente nell'editor quando lo eseguo. Tuttavia, quando salvo lo script come applicazione rimuove costantemente il "2" da "App 2" ogni volta che salvi l'applicazione, anche se viene compilata correttamente. Qualcuno ha qualche idea del perché questo sta accadendo; Sono abbastanza nuovo su Applescript.

    
posta Robert Alexander 29.06.2014 - 19:56
fonte

2 risposte

1

Puoi evitare il problema durante la compilazione scegliendo dinamicamente le app negli eventi di sistema.

tell application "System Events"
    set App1 to (first process whose name is "App")
    tell App1
        set frontmost to true
        set position of window 1 to {8, 22}
    end tell
end tell

Quindi fai lo stesso per App2.

    
risposta data 09.07.2014 - 06:54
fonte
0

Il problema principale è che Apple Script Editor non conosce alcuna "app" di nomi o "app 2", quindi se esegui lo script ti chiede di selezionare dove è memorizzata l'app e poi sostituisce "app" con Nome effettivo dell'applicazione. Questo succede anche per "App 2".

Quindi se due volte selezioni la stessa Applicazione (che è ciò che stai cercando di fare, secondo le tue citazioni), entrambe le volte rimuoveranno l'App "Nomi" e "App 2" con lo stesso Nome dell'effettivo Applicazione.

O se usi App come Abbreviazione per il Nome effettivo dell'Applicazione, conosce l'Applicazione in Prima Istruzione ma non nella Seconda, quindi Richiederà solo una volta e sostituirà semplicemente "App 2".

Per fare ciò che vuoi ti consiglio di cambiare il tuo Script con qualcosa di simile e provarlo in questo modo (non testato):

tell application "<Name of Application>" to activate --open first Window
tell application "<Name of Application>" to activate --open second Window

tell application "System Events" to tell application process "<Name of Application>"
    set position of window 1 to {8, 22}
    set position of window 2 to {914, 22}
end tell

se questo non funziona forse puoi adottare questo Script che sposta due finestre del Finder aperte Side by Side.

property monitor_width : 980
property monitor_height : 768

set the startup_disk to (path to startup disk)

tell application "Finder" activate
    set visible of (every process whose visible is true and frontmost is false) to false
    -- BOTTOM WINDOW
    set this_window to make new Finder window
    set the target of this_window to the startup_disk
    set the bounds of this_window to {0, (monitor_height * 0.55) div 1, monitor_width, monitor_height}
    set the current view of this_window to column view
    -- TOP WINDOW
    set this_window to make new Finder window
    set the target of this_window to the startup_disk
    set the bounds of this_window to {0, (monitor_height * 0.06) div 1, monitor_width, (monitor_height * 0.53) div 1}
    set the current view of this_window to column view
end tell

Fonte: link

    
risposta data 09.07.2014 - 07:31
fonte

Leggi altre domande sui tag