Ottieni l'app corrente da due istanze con lo stesso nome da Apple Script


1

Come indirizzare una finestra attiva di un'app attiva tramite AppleScript quando sono in esecuzione due istanze della stessa app?

Lo script seguente si rivolge all'altra app. Probabilmente perché il nome e l'id dell'app sono uguali e seleziona solo il primo dall'elenco per nome.

tell application (path to frontmost application as text) to tell front window...

Uso quello script per ingrandire la finestra corrente ma non funziona per le due istanze della stessa app:

tell application "Finder" to set {0, 0, dtw, dth} to bounds of window of desktop
try
    tell application (path to frontmost application as text) to tell front window
        set bounds to {0, 0, dtw, dth}
    end tell
on error
    tell application "System Events" to tell (process 1 where it is frontmost)
        try
            click (button 1 of window 1 where subrole is "AXZoomButton")
        end try
    end tell
end try

Quale app viene eseguita due volte? Perché non nominare ciascuna app in modo diverso? Se hai altri dettagli / vincoli, potremmo essere in grado di offrire qualcosa di diverso dall'analisi dell'elenco dei processi per scegliere l'app che è iniziata prima o iniziata per ultima ...
bmike

È un'istanza di Chrome creata come app autonoma per accedere a Google Music come descritto qui: apple.stackexchange.com/questions/226833/…
myneur,

Fantastico: ho collegato lo strumento che ho visto usare da altre persone quando hanno bisogno di app Web per ottenere nomi dock diversi e simili. È fluidapp.com
bmike

Risposte:


2

Non è possibile ottenere l'istanza corretta dell'applicazione in primo piano poiché queste due istanze hanno lo stesso percorso e lo stesso identificatore di bundle, l'applicazione sarà sempre la prima istanza aperta.

Devi usare il primo process , in questo modo:

tell application "System Events"
    tell (first process whose frontmost is true) to tell front window to if exists then
        set position to {0, 0}
        set size to {dtw, dth}
    end if
end tell

Grande. Sembra funzionare tranne per un dettaglio: il primo script ingrandisce la finestra a schermo intero, compresa l'area inutilizzata sul dock nascosto. Il nuovo script con la posizione / dimensione mantiene il riempimento sul lato dello schermo in cui è nascosto il dock. Questo script non sembra accettare i limiti impostati su {0, 0, dtw, dth}. Qualche idea su come migliorarlo per utilizzare le dimensioni reali dello schermo intero senza l'imbottitura?
myneur,

Non ho questo comportamento sul mio iMac ( El Capitan ), dock sul lato o sul fondo, quindi non ho idea di come risolverlo.
jackjr300,

Se hai un dock nascosto, c'è uno spazio di 5px su di esso. È su tutte le versioni di OS X. Se non lo vedi, probabilmente hai solo uno sfondo scuro. Il divario non è presente se viene mostrato il dock. Non è un grosso problema, ma è solo fastidioso vedere lo sfondo selvaggio attraverso quella lacuna o le finestre sottostanti potrebbero sbirciare attraverso di esso, il che è brutto.
myneur,

Sì, il mio sfondo è scuro, ho provato con lo sfondo giallo e vedo il divario. Quindi, non ho soluzione a questo problema, tranne per avviare Chrome a schermo intero, mettere l' --start-fullscreenopzione alla fine del execcomando nello script SH
jackjr300,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.