Qualcuno può spiegare perché questi script funzionano?

2

Sono un iniziato AppleScript nuovo di zecca. Ero a un Summit degli sviluppatori e avevo bisogno di smettere così tanto di fare casino con Windows. Così ho cercato di scrivere il dimensionamento e il posizionamento della finestra. Ero sul mio MacBook Pro e così ho scritto il seguente codice e inserito in Automator come servizio che poi ho salvato in HardDrive > Users > User > Library > Services.

tell application "System Events"
    set myTargetApplication to name of the first process whose frontmost is true
end tell

tell application myTargetApplication
    --  This line is what we use when we need to grab that bounds of a window.
    -- set currentBounds to bounds of the first window
    set bounds of the first window to {61, 46, 1261, 777}
end tell

Scrivo lo script in "Script Editor" e lo collaudo con la riga commentata non commentata e la riga dopo averla commentata. Quindi ho potuto posizionare la finestra come voglio e ottenere le impostazioni che dovevo applicare. Ho ottenuto le impostazioni e le ho incollate nella riga subito prima "end tell" e hanno funzionato.

L'ho impostato come servizio e ora posso apportare QUALSIASI finestra (dal servizio) alle dimensioni di cui avevo bisogno.

Sono arrivato a casa e mi sono collegato al mio doppio monitor, un Acer da 32 ", e ogni volta che eseguivo la sceneggiatura nel mio monitor grande, saltava sul MacBook Window.

Quindi ho ottimizzato questo e quello, ho provato diverse cose, ho osservato le cose e durante una corsa l'ho fatto:

tell application "System Events"
    set myTargetApplication to name of the first process whose frontmost is true
end tell

tell application myTargetApplication
    --  This line is what we use when we need to grab that bounds of a window.
    -- set currentBounds to bounds of the first window
    set bounds of the first window to {1299, 38, 3182, 1062}
end tell

Ho fatto la stessa cosa in Automator ... salvato come servizio ... e ora funzionano.

ESATTAMENTE COME VOGLIO.

Non mi sto addolorato ... Mi sono perso ...

Non vedo PERCHÉ funzionano. Spero che qualcuno possa indicare cosa li fa funzionare così posso capire meglio AppleScript.

Grazie in anticipo

    
posta randomblink 13.03.2016 - 05:54
fonte

2 risposte

3

Il rettangolo più piccolo che contiene entrambi i monitor "reali" è il tuo desktop virtuale.

L'angolo in alto a sinistra del monitor che contiene la barra dei menu è la coordinata (0 | 0). Lo spostamento verso destra e verso il basso aumenta i numeri.

Se hai un monitor (1920 | 1200) l'angolo in alto a sinistra è il (0 | 0) e l'angolo in basso a destra ha la coordinata (1920 | 1200) e l'intero desktop è descritto da {0, 0, 1920, 1200}

Se hai due monitor di dimensioni uguali (1920 | 1200) disposti affiancati e quello di sinistra è il monitor principale, le coordinate del desktop completo sono {0, 0, 3840, 1200} . Se il monitor corretto è il principale: {- 1920, 0, 1920, 1200} .

Se si dispone di due monitor di dimensioni diverse (1920 | 1200) e (2000 | 1400) disposti con un offset (ad esempio, l'angolo in basso a destra del monitor piccolo (1920 | 1200) si trova accanto all'angolo in alto a sinistra (0 | 0) dell'altro monitor e quello sinistro è quello principale) quindi il desktop è descritto da {0, 0, 3920, 2600} . Se quello giusto è il monitor principale, l'intero desktop è rappresentato da {- 1920, -1200, 2000, 1400} .

Quindi la tua finestra {1299, 38, 3182, 1062} nella disposizione segnata in grassetto sarebbe simile a questa:

    
risposta data 13.03.2016 - 07:42
fonte
2

Altro da aggiungere a ciò che ha detto klanomath piuttosto che tentare di fornire un'altra risposta quasi identica ...

Il valore della proprietà bounds viene restituito come un elenco di quattro elementi di numeri interi che rappresentano l'area della finestra in questo modo: {72, 90, 512, 481}

  • Elenco elemento 1: { 72 , 90, 512, 481}
    La distanza in pixel dal lato sinistro dello schermo verso il lato sinistro della finestra del Finder.
  • Elenco elemento 2: {72, 90 , 512, 481}
    La distanza in pixel dalla parte superiore dello schermo fino alla parte superiore della finestra del Finder.
  • Elenco elemento 3: {72, 90, 512 , 481}
    La distanza in pixel dal lato sinistro dello schermo verso il lato destro della finestra del Finder.
  • Elenco elemento 4: {72, 90, 512, 481 } La distanza in pixel dalla parte superiore dello schermo fino alla fine della finestra del Finder.

Fonte: link
che è una grande risorsa per l'apprendimento di Applescript.

    
risposta data 13.03.2016 - 09:44
fonte

Leggi altre domande sui tag