Applescript pentru începători absoluti. MAC OS X Introducere în AppleScript

Acasă / Nu se aprinde

AppleScript este un limbaj de programare puternic care datează de la Mac OS 7. Cu toate acestea, în ciuda maturității sale, programatorii Mac experimentați critică adesea AppleScript pentru că este prea simplu, prea ușor de învățat și prea asemănător cu engleza obișnuită.

Desigur, ați dori ca un limbaj de computer să aibă aceste calități - dacă, desigur, doriți un limbaj de computer. AppleScript este cel mai simplu limbaj de programare cu care îți poți automatiza Mac-ul, chiar dacă ești un simplu utilizator și nu un informatician certificat.

Programele AppleScript (numite scripturi sau scripturi) pot fi considerate roboți software. Un AppleScript simplu poate face unele sarcini de zi cu zi, cum ar fi crearea copie de rezervă Dosare de documente. Un script mai complex poate cuprinde mai multe pagini. În editurile profesionale, unde AppleScript-urile sunt cele mai populare, script-ul se poate conecta prin Internet la hard disk-ul fotografului, poate prelua fotografia dintr-un folder specificat, poate efectua corectarea culorilor în Photoshop, lipi rezultatul într-un document de aspect specificat, imprima un document brut. layout, trimiteți o notificare prin e-mail editorului - și toate acestea se fac automat.

Fără să știe, utilizatorul folosește în mod constant tehnologia AppleScript de bază. În culise, numeroase componente Mac comunică prin Apple Events, care sunt mesaje care transmit instrucțiuni sau date de la program la program. Dacă utilizați comanda Afișare originală pe un alias sau comanda Obțineți informații pe un fișier sau folder, Evenimentul Apple va spune Finder-ului cum să răspundă.

AppleScript este superior Automator în mai multe moduri, dintre care nu în ultimul rând este puterea sa. Și încă ceva: AppleScript este un subiect atât de profund încât ar trebui să fie dedicat unei cărți separate. Acest capitol este doar un aperitiv gustos: o carte precum AppleScript: The Essential Guide ar fi o masă cu șapte feluri.

Sfaturi Puteți descărca un întreg capitol despre AppleScript, care a apărut într-o ediție anterioară a acestei cărți, de pe pagina CD-ului lipsă de la www.missingmanuals.com.

Nu trebuie să creați AppleScript pentru a vă bucura de beneficiile acestei tehnologii. Mac OS X vine cu zeci de scripturi gata făcute, care sunt cu adevărat utile și, pentru a executa oricare dintre ele, trebuie doar să îi selectați numele în meniu. Această „reproducere” a unui AppleScript necesită la fel de multă abilitate tehnică precum apăsarea unui buton de lift.

Puteți încerca unele dintre aceste scenarii de pornire grozave adăugând un meniu de scenarii în bara de meniu (Figura 7.16, dreapta).

Meniul de scenarii are 16 categorii gata făcute, combinând aproximativ 100 de scenarii; pentru a rula un script, pur și simplu selectați numele acestuia. Iată o listă cu cele mai utile și interesante scenarii.

Sfaturi Dacă apăsați tasta Shift în timp ce selectați un nume de script din meniu, Mac OS X vă va duce direct la locul în care se află acel script în Finder (de exemplu, folderul Home>Library>Scripts). Mai mult, dacă apăsați tasta Opțiune în timp ce selectați un nume, scriptul se va deschide în Editorul de Scripturi, unde îl puteți examina sau edita.

Acest submeniu conține doar scriptul Import Addresses, care este conceput pentru a copia nume și adrese din Entourage, Outlook Express, Palm Desktop, Eudora, Claris Emailer sau Netscape în programul Address Book. Dacă aveți mulți prieteni, utilizați acest script pentru a nu fi nevoit să reintroduceți toate numele, numerele de telefon și adresele poștale ale acestora. (Subdosarul însoțitor Address Importers oferă scripturi pentru importul din trei programe specifice.)

Submeniul Noțiuni de bază conține trei mici scripturi utile legate de AppleScript: AppleScript Help (deschide Vizualizatorul de ajutor și caută cuvântul AppleScript); Site web AppleScript (deschide pagina web AppleScript în browserul dvs. web); Deschideți Script Editor (deschide programul Script Editor, conceput pentru citirea și editarea scripturilor AppleScript).

Acest folder conține un grup de scripturi de picături ColorSync (care rulează atunci când trageți ceva pe pictograma sa) care sunt de interes pentru artiști, designeri de site-uri web, editori și altele asemenea.

În unele cazuri, când selectați un script din acest meniu, veți vedea un scurt mesaj informativ și apoi o casetă de dialog Deschidere pentru a selecta fisier grafic pentru a fi prelucrate.

Alții acționează imediat; de exemplu, scriptul pentru monitorul Mimic PC ajustează culorile ecranului pentru a se potrivi îndeaproape cu nuanțele ușor diferite de pe un monitor de computer Windows. Acest lucru este foarte convenabil dacă lucrați

CURSURI DE UTILIZATOR CU EXPERIENȚĂ
Secretele meniului de scenarii
Meniul Scripturi afișează conținutul a două foldere Scripturi diferite: unul este Acasă>Bibliotecă>Scripturi, iar celălalt se află în folderul principal Bibliotecă. Acele scripturi care sunt preluate din folderul personal sunt separate printr-o linie punctată în meniul de scripturi.

Aceste scripturi nu pot fi executate numai. De asemenea, sunt ideale pentru a le deschide în Editorul de scripturi (doar faceți dublu clic) și pentru a analiza rând cu linie modul în care funcționează. Odată ce ați înțeles sintaxa, puteți copia fragmente de cod și, după ce le modificați, să le utilizați în scripturile dvs. (Editorul de scripturi este un program care se găsește în folderul Aplicații > AppleScript pe care îl puteți utiliza pentru a vă crea propriile scripturi.)

O fotografie sau o pagină web și vrei să știi cum va arăta pentru masele neluminate. (Pentru a restabili culorile originale, accesați fila Culoare a telecomenzii Display din fereastra Preferințe de sistem.)

Toate aceste scenarii se referă la lucrul în Finder - să zicem, manipularea fișierelor și ferestrelor. Iată cele mai utile dintre ele:

Adăugați la nume de fișiere, Adăugați la nume de foldere. Aceste scripturi atașează un prefix sau sufix la numele fiecărui fișier sau folder în fereastra din față (activă) Finder (sau, dacă nu există ferestre deschise, pe desktop). Folosind aceste scripturi, puteți adăuga cuvântul „schiță” sau „final” sau „vechi” la numele tuturor fișierelor dintr-un folder.

Înlocuirea textului în numele elementelor vă permite să efectuați o căutare de înlocuire în numele fișierelor, folderelor sau ambelor. Dacă un editor respinge propunerea dvs. de carte de 45 de capitole, puteți utiliza acest script pentru a redenumi toate cele 45 de capitole: să spunem ce a fost „O istorie a mouse-urilor – Propunere pentru Random House, Capitolul 1” devine „O istorie a mouse-urilor – Propunere pentru Simon "& Schuster, capitolul 1."

Decupați numele fișierelor, tăiați numele folderelor. Dacă ați făcut o greșeală când ați rulat scriptul Adăugare la nume de fișiere, puteți oricând să o remediați folosind Trim File Names. Acest script elimină extensiile de fișiere, sufixele sau prefixele alese de utilizator.

Să presupunem că tocmai ați creat mai multe dosare noi simultan. Mac OS X numește aceste foldere „dosar fără titlu”, „dosar fără titlu 2”, etc. Dar dacă ești mai confortabil cu numele „dosar 1”, „dosar 2”, etc.? Rulați scriptul Trim Folder Names; În caseta de dialog, tastați fără titlu și faceți clic pe OK.

Este puțin probabil să utilizați în mod activ scripturile Folder Actions, deoarece același acces la operațiunile din foldere este oferit prin Control-clic pe un folder (sau în interiorul ferestrei acestuia)

Aceste scripturi demonstrează cum puteți automatiza unele sarcini legate de fonturi.

FontSync este încercarea nobilă a Apple de a rezolva o veche problemă de desktop publishing. Ați terminat de creat un buletin informativ frumos și îl duceți la tipografia locală pentru a-l tipări cu echipamente de înaltă calitate, doar pentru a descoperi că trebuie să aruncați imprimările și să o luați de la capăt - doar pentru a descoperi că fonturile nu arata asa cum ai vrut. Tipografia nu avea fonturile exacte pe care le-ați folosit pentru a pregăti documentul. Sau, și mai rău, fonturile aveau exact aceleași nume, dar au fost create de o altă companie și, prin urmare, diferă ușor de ale tale în anumiți parametri.

Ideea din spatele FontSync este de a anunța utilizatorul în avans cu privire la posibilele inconsecvențe. Scriptul Creare profil FontSync creează un fișier de profil FontSync în câteva minute. Acest document conține o cantitate uluitoare de informații despre designul, fluxul și înflorirea tuturor fonturilor instalate pe sistem. Într-o tipografie, un astfel de document poate fi procesat utilizând scriptul suplimentar Match FontSync Profile. Acesta va analiza diferențele dintre fonturile de pe Mac-ul utilizatorului și presele de tipar.

Desigur, această tehnologie presupune implicit prea mult: că tipografia are computere Macintosh instalate, că se pot descurca cu FontSync și, de asemenea, că utilizatorul nu va uita să creeze și să transfere mai întâi un profil FontSync către tipografie.

IChat a suferit o revizuire semnificativă în 10.5 - Apple a adăugat o mulțime de funcții interesante (deși uneori inutile). De asemenea, a devenit posibil să rulați AppleScripts ca semnale atunci când are loc un eveniment legat de contactele dvs. De exemplu, puteți accepta automat invitații de chat de la persoane de contact individuale sau chiar să le răspundeți cu un salut pregătit în prealabil. Puteți chiar să controlați redarea muzicii pe un Mac tastând comenzi în fereastra iChat a altui Mac din casa dvs. Detalii în capitolul 21.

Beneficiul acestor două scenarii este mic. Data și ora curente afișează data și ora curente într-o casetă de dialog echipată cu un buton Clipboard pentru copierea informațiilor, gata pentru lipire. Font Sampler afișează o pagină care listează fonturile (ale căror nume sunt scrise în script) care sunt instalate cu Mac OS X. (Scriptul a devenit mai puțin util, deoarece Font Book a adăugat comenzi de imprimare încorporate similare.)

Două scenarii din acest meniu merită o mențiune specială. Temperatura curentă după codul poștal arată care este temperatura din afara ferestrei în Fahrenheit și Celsius. Acesta este un alt motiv pentru a nu ieși din casă toată ziua.

Stock Quote primește cotațiile bursiere pentru compania selectată cu o întârziere de 20 de minute. Nu la fel de grozav ca obținerea de oferte în timp real, dar este gratuit.

Majoritatea scripturilor din acest submeniu rezolvă anumite probleme specifice, cum ar fi numărarea literelor din e-mailurile dvs. cutiile poştale sau crearea unuia nou cont. Cel mai amuzant dintre toate, desigur, este scenariul Crazy Message Text (Fig. 7.17).

Scripturile din acest folder vă permit să sari în foldere speciale Finder - chiar din meniu, din orice program. Dacă folderul pe care doriți să-l deschideți nu are propriul script alocat, selectați-l din listă din scriptul Open Special Folder.

Sfaturi Pentru cei cărora nu le deranjează că trebuie să editeze acest script folosind Editorul de scripturi, îl puteți modifica pentru a vă permite să selectați și să deschideți mai mult de un folder la un moment dat (prin, de exemplu, -clic). Trebuie doar să tastați textul selecții multiple permise adevărat imediat după cuvintele Alegeți folderul de deschis: (la sfârșitul rândului, situat aproximativ la începutul celei de-a doua treimi a scriptului). Nu uitați să salvați modificările.

Aceste scripturi sunt concepute pentru a demonstra puterea AppleScript pentru tipărirea și crearea de documente PostScript și PDF.

Unul dintre ele, Print Window, umple un gol de mult timp în Mac OS X. Ar trebui să imprime o listă de text cu conținutul oricărui folder selectat. (Totuși, este un mic buggy.)

Potrivit echipei Despre aceste scripturi, aceste 48 de scripturi pre-construite vă ajută să scrieți scripturi mai rapide și mai precise, deoarece fragmentele de cod nu conțin greșeli de scriere și erori de sintaxă. Pe măsură ce vă îmbunătățiți, puteți adăuga aici propriile scripturi, cu fragmente de cod adaptate scripturilor pe care le scrieți de obicei, pentru a vă face munca și mai eficientă. (Când creați un script în Editorul de scripturi, inserați aceste fragmente de cod în text utilizând o selecție de meniu Control-clic și acces rapid.)

În cea mai mare parte, scenariile își fac treaba în liniște și neobservate. Dar dacă doriți să automatizați un program care nu înțelege comenzile AppleScript obișnuite, scripturile îl pot „controla” manual prin simularea selecțiilor de meniu, apăsări de butoane și așa mai departe.

Nota Această caracteristică, numită scripting pentru interfața cu utilizatorul, va intra în vigoare numai după ce deschideți consola Acces universal în Preferințe de sistem și selectați caseta de selectare Activare a accesului pentru dispozitivele auxiliare).

Nu are rost să rulați scripturile din submeniul UI Element Scripts așa cum sunt: ​​sunt doar exemple pentru a demonstra sintaxa corectă.

Acest ultim set de scripturi oferă acces rapid la unele site-uri web populare. O excepție este scriptul Download Weather Map, care descarcă harta meteo actuală a Statelor Unite continentale, o salvează pe desktop ca weathermap.jpg, apoi o deschide în Previzualizare.

Sfaturi Puteți adăuga scripturi, fișiere și chiar adrese de Internet în meniu și apoi le puteți lansa pe toate cu ușurință din bara de meniu. Orice trageți în folderul Bibliotecă>Scripturi va apărea automat în meniul de scripturi.

Pe de altă parte, dacă începeți să adăugați o mulțime de articole proprii în meniul Script, va fi mai convenabil să eliminați mostrele Apple din acesta. Nici o problemă. Deschideți AppleScript Utility și debifați Afișare scripturi computer.

Lucrul cu scripturi gata făcute AppleScript

Pe măsură ce lucrați prin meniul de scripturi, vă veți da seama în curând că aveți zeci de scripturi încorporate gratuite pe Mac. Lucrul grozav este că poți să-ți dai seama cum funcționează și chiar să le schimbi pe măsură ce înveți treptat să scrii propriile AppleScripts. Puteți chiar să copiați și să utilizați secțiuni întregi de scripturi Apple în propriile scripturi.

Mai întâi, desigur, trebuie să deschideți scriptul. Cel mai simplu mod de a face acest lucru este să deschideți meniul de scripturi, să selectați categoria dorită și să faceți clic pe Opțiune pe numele scriptului dorit.

Puteți începe să învățați AppleScript urmărind un script simplu. Deschideți, de exemplu, scriptul New Application Window (În categoria Scripturi de navigare) făcând clic pe numele său în timp ce apăsați Tasta de opțiune. Ca rezultat, Script Editor va deschide fișierul într-o fereastră nouă (Fig. 7.18).

Iată cum funcționează acest script:

Spuneți aplicației „Finder” îi spune lui Mac OS X care program ar trebui să execute următoarele comenzi.

Activare aduce Finder-ul în prim-plan, la fel ca și cum ați fi făcut clic pe pictograma acestuia în Dock.

Deschideți folderul „Aplicații” al discului de pornire îi spune Finder-ului să deschidă o nouă fereastră care afișează folderul Aplicații de pe hard diskul principal.

End tell îi spune Finder-ului să-și facă treaba și să ignore orice alte comenzi din scriptul tău.

Pentru a testa scriptul, faceți clic pe butonul Run sau apăsați -R.

Sfaturi Puteți edita acest script pentru a se potrivi mai bine nevoilor dvs. Încercați, de exemplu, să înlocuiți „Aplicații” cu „Utilizatori”, astfel încât scriptul să deschidă folderul Utilizatori.

Creați-vă propriile AppleScripts

Mac OS X vine cu zeci de programe - atât de multe dintre ele! Bine, lipsește ceva - un metronom, de exemplu. Cum vei cânta la pian într-un ritm constant, fără a auzi clicurile ritmice pe care le face Mac-ul tău? Bineînțeles, într-un pic, un metronom GarageBand va ajuta, dar asta înseamnă să împuști în vrăbii cu un tun.

Puteți utiliza AppleScript în schimb. Deschideți un document nou în Editorul de script (Fișier>Nou sau -N) și introduceți următoarele:

Afișează dialogul „Bine ați venit la Metronomul AppleScript”

setați bpm la textul returnat de (afișare dialog ¬

— Câte bătăi pe minut? răspuns implicit 60)

setați pauză între beeps la (60/bpm)

întârzierea pauzăBetweenBeeps

Nota Nu este nevoie să tipăriți simbolul ¬. Deci programatorii spun: „Acesta ar trebui să fie pe o singură linie, dar nu există suficientă lățime a paginii”.

Când rulați acest script, apare o casetă de dialog care vă întreabă câte bătăi pe minut doriți să conteze metronomul. Numărul pe care îl introduceți (de exemplu, 120) este stocat într-o variabilă de stocare temporară în cadrul scriptului numit bpm.

Scriptul calculează apoi cantitatea de pauză dintre bipuri și înregistrează acea fracțiune de secundă în variabila pauseBetweenBeeps. Dacă ai spus scenariului ce să publice bip, de exemplu, de 120 de ori pe minut, atunci valoarea 0,5 va fi scrisă în pauseBetweenBeeps, deoarece trebuie să existe o pauză egală cu o jumătate de secundă între mostre.

În cele din urmă, scriptul creează o buclă infinită: semnal, pauză pentru o lungime specificată și apoi repetă.

Faceți clic pe butonul Executare pentru a testa scriptul și, când ați auzit suficiente sunete, faceți clic pe butonul Stop.

TEHNICILE MELE PREFERATE
Atașamente desktop cu un singur clic
Aici mic truc cu Automator, care poate fi o salvare pentru oricine are nevoie adesea să trimită documente prin e-mail. (Modelează comanda foarte convenabilă Trimiteți către care se găsește în meniul de comenzi rapide ale mașinilor Windows.)

Creați un proces în Automator cu doar doi pași: Obțineți elementele de căutare selectate (în categoria Finder) și New Mail Message (în categoria Mail).

Dacă trimiteți întotdeauna fișiere aceluiași destinatar - șeful dvs., de exemplu - puteți chiar să presetați adresa în panoul de procese al Automator. Dacă subiectul și textul mesajului sunt repetate de fiecare dată, le puteți seta și în avans.

Acum selectați Fișier> Salvare ca plug-in. Denumiți procesul Trimiteți prin e-mail acest lucru sau orice doriți.

De acum înainte, puteți trimite un document din Finder făcând Control-clic pe el și alegând Automator>Email This din meniul care apare.

Victorie! Mac OS X lansează Mail și creează un mesaj de ieșire cu un fișier atașat.

Sfat gratuit: dacă introduceți o altă acțiune Creare arhivă (din categoria Finder) între aceste două acțiuni, comanda dvs. de meniu va comprima și fișierul (sau folderul) într-un fișier .zip înainte de a-l trimite prin poștă!

Sfaturi Va fi și mai rece dacă verificați Preferințe de sistem>Acces universal>Auz>Flash ecranul când apare un sunet de alertă în setările sistemului dvs. Acum, când rulează scriptul, ecranul va clipi împreună cu sunetul. Dacă înregistrați muzică, opriți Mac-ul: veți avea un metronom vizual, dar fără semnal audio.

Comparație între AppleScript și Automator

Există sute de utilizări pentru AppleScript - automatizarea proceselor care sunt prea complexe pentru Automator, controlarea programelor pe care Automator nu le poate vedea și programarea unor lucruri precum bucla de comenzi pe care Automator nu le poate face.

Dacă priviți AppleScript doar ca înlocuitor pentru Automator, pierdeți multă putere. De fapt, AppleScript oferă capabilități pe care Automator probabil nu le va avea peste 10 ani: este un instrument mult mai avansat.

Automator este bun pentru sarcini simple. Dacă aveți nevoie de AppleScript pentru a vă automatiza Mac-ul, nu disperați. Chiar o iei asupra ta instrument puternic. (Puteți chiar să le combinați și să încorporați AppleScripts în procesele Automator folosind acțiunea Run AppleScript.)

Mult succes cu automatizarea!

Nu utilizați încă AppleScript? Nu știi ce este? Crezi că asta nu-ți este de folos? Sau, poate, memoria lecțiilor de informatică de la școală te determină să faci un atac de alergie la simpla menționare a cuvântului „program”? Aceasta înseamnă că ai făcut ceea ce trebuie deschizând acest articol.

Sper că vă va ajuta să înțelegeți acest instrument foarte util, iar timpul petrecut lecturii se va răscumpăra mai târziu.

Adesea, atunci când lucrăm cu un anumit program, trebuie să efectuăm aceleași acțiuni de mai multe ori: apăsați aceleași taste, selectați aceeași comandă din meniu, introduceți aceleași valori în casete de dialog& Aici intervine AppleScript. Descriem secvența operațiunilor noastre sub forma unui program „script”, îl lansăm și bem calm cafea, aruncând ocazional o privire pentru a vedea dacă procesarea ultimului, trei mii șapte sute optzeci și nouă s-a încheiat. Ceva similar există sub formă de fișiere DOS BAT sau scripturi shell UNIX. Dar AppleScript are un avantaj important: limbajul este „înțeles” atât de Finder, cât și de un număr mare de programe de aplicație, iar scriptul le poate accesa pe toate unul câte unul.

Limbajul pe care îl vom folosi (numit și AppleScript) este foarte aproape de obișnuit Limba engleză. De exemplu, scriptul ar putea arăta astfel:

spune aplicația „Finder”
face
sfârşitul spune

Cred că toată lumea a înțeles ce va face. Dar pentru a învăța cum să-ți scrii propriile scripturi, va trebui să înțelegi câteva concepte.

Obiecte, proprietăți, evenimente...

AppleScript este un limbaj orientat pe obiecte. Adică, ia în considerare tot ceea ce „există” în computerul tău obiecte(obiecte). Un obiect poate consta din alte obiecte, poate fi inclus într-un alt obiect sau poate fi asociat cu un alt obiect. De exemplu, Finder este un obiect. Are obiecte „subordonate” - foldere, fișiere, ferestre. Editorul Tex-Edit are un obiect text, format din cuvinte, linii, paragrafe etc. Cunoașterea modului în care obiectele sunt legate (ierarhia lor) este foarte importantă, deoarece comanda este transmisă „de-a lungul lanțului”. Funcționează un fel de „verticală a puterii”: dăm ordine către Finder, dă ordine folderului, dă ordine folderului imbricat în el și așa mai departe, până ajunge. fișierul dorit. Și „raportul de execuție” va urma din nou același lanț - în direcția opusă.

Se formează obiecte de același tip (de exemplu, toate folderele). Clasă(clasă). Fiecare obiect are un anumit set proprietăți(proprietăți) care îl deosebește de altul. De exemplu, fiecare fișier are un nume, etichetă, tip, data creării, versiune și mai mult de o duzină de caracteristici. Scenariul poate schimba unele dintre ele, altele pot fi doar citite.

O clasă (numită "descendent") poate moșteni proprietățile unei alte clase ( "strămoş"). De exemplu, atât folderele, cât și fișierele au un strămoș comun - un element (articol).

Acum să ne uităm la exemplul nostru, extinzându-l puțin:

- orice text scris după „două minusuri”,
— considerat un comentariu;
- computerul nu-i acordă atenție
spune aplicația „Finder”
- cuvântul tell începe un grup de comenzi,
- legat de un obiect
face dosar nou pe desktop cu proprietăți (nume: „Al meu!”, index etichetă: 2)
sfârşitul spune - si asa se termina grupul de comenzi
spune aplicația „Finder” a spune elementul „Al meu!”
deschide
set numele ei la"Numai pentru mine"
sfârşitul spune

Mai întâi îi spunem Finderului să creeze obiect nou clasa „dosar”, situată pe Tabel. Unele proprietăți sunt specificate în comandă (numele folderului și eticheta de culoare a acestuia), restul vor fi atribuite implicit de computer. Apoi îi spunem lui Finder să-și comandă folderul (acest și numai așa: „vasalul meu vasal nu este vasalul meu”) să deschidă și să schimbe numele.

Dar este timpul să trecem de la raționamentul teoretic la ceva mai tangibil. Este timpul să lansăm Editorul de Scripturi.

Editor de scripturi

Au fost create mai multe programe pentru a lucra cu AppleScript, inclusiv instrumente de dezvoltare foarte avansate. Probabil vei ajunge să deții unul dintre acestea mai târziu. Dar pentru o cunoștință inițială, editorul inclus cu Mac OS ne va fi suficient.

Fereastra Editor de script este împărțită în două părți: comentariul este scris în partea de sus (este afișat pe ecran înainte de executarea scriptului), iar programul este în partea de jos. Să încercăm să scriem exemplul nostru (desigur, poți să faci fără comentariile mele). Apoi faceți clic pe butonul „Verificați sintaxa”. Dacă ați făcut vreo greșeală, va apărea o fereastră explicativă. Dar, cel mai probabil, totul va fi bine - și după o scurtă pauză textul își va schimba oarecum aspectul. Ce font va fi folosit pentru a evidenția diferite elemente ale scriptului poate fi configurat utilizând comanda „Formatare AppleScript” din meniul „Editare”. Acum puteți face clic pe butonul „Run”. A funcționat?

Scriptul scris poate fi salvat în diferite moduri: fie sursă(Text), sau deja script compilat(Script compilat) - gata pentru a fi executat de un editor de scripturi sau de alte programe, în sfârșit - sub forma unuia independent (notă de subsol: desigur, nu chiar - fără AppleScript instalat nu va face nimic) programul applet(Aplicație). Puteți face un script „numai execuție” (doar rulare). Amintiți-vă doar în acest caz să economisiți - pentru dvs. - și dosarul original. În caz contrar, nu numai concurenții dornici să-ți încalce drepturile de autor, ci și tu însuți nu vei putea ajunge la textul sursă.

Dicționare, dicționare, dicționare...

„Ei bine,” vă gândiți probabil, „editorul este la fel de ușor ca să decojiți perele, citiți scripturi gata făcute- de asemenea, nu este dificil. Dar cum să le scriu? De unde obținem toate aceste clase, comenzi, proprietăți?” Răspunsul este simplu: trebuie să te uiți la dicţionar. Fiecare program care acceptă lucrul cu AppleScript, precum și ScriptingAddition (vom vorbi despre „adăugiri” mai târziu) conține scurtă descriere toate obiectele sale și comenzile recunoscute. Puteți vizualiza acest dicționar direct din editorul de script - selectând „Open Dictionary” din meniul „File” sau trăgând programul dorit la poza editorului.

Programele Macintosh pot suporta AppleScript la trei niveluri diferite.
Scriptabil- programul poate executa comenzi descrise sub forma unui script.
Înregistrabil- este posibilă înregistrarea comenzilor executate în program. Să creăm un nou script, să începem înregistrarea (folosind butonul „Înregistrare”), să efectuăm, de exemplu, acțiunile necesare manual în Finder și să oprim înregistrarea („Oprire”). Asta e tot. Acest lucru face foarte convenabil să creați șabloane de script.
Ataşabil- scriptul poate fi executat direct din program, fiind „atașat” unui meniu sau oricărui obiect din fereastră. Exemple de astfel de programe: AppleWorks, Tex-Edit, FileMaker Pro.

Să deschidem, de exemplu, dicționarul Finder.

În stânga vedeți o listă cu toți „termenii” definiți în program. Vă rugăm să rețineți: unele dintre ele sunt scrise cu caractere cursive. Acestea sunt obiecte. Toate celelalte sunt echipe. Făcând clic pe cuvântul dorit, puteți citi un scurt rezumat.

Ce poți afla, de exemplu, despre „Container”? În primul rând, vedem: „Container de clasă: un articol care conține alte articole”. Adică este un element care conține alte elemente. Și dacă te uiți la descrierile următoarelor clase, va deveni clar că „container” este un concept care include discuri, foldere, Desktop și Coș de gunoi. Are proprietățile comune ale acestor obiecte în mare măsură similare. Și în „arborele genealogic” - ierarhia claselor - el este strămoșul lor.

Citiți mai departe. „Forma plurală: containere”. Forma pluralului? Învățăm gramatica engleză? Da si nu. Am menționat deja că AppleScript este cât se poate de aproape de limbajul natural. Și dacă dorim să procesăm toate obiectele unei clase date, atunci putem scrie acest lucru, așa cum ar trebui să fie în engleză, fie „fiecare container”, fie „containere”.

După cum știți deja, un obiect poate conține alte obiecte. Care dintre ele și cum diferă unele de altele sunt descrise în următoarea secțiune a dicționarului - „Elemente”. Un container, după cum puteți vedea, poate conține obiecte dintr-o duzină și jumătate de clase diferite, de exemplu, alte containere, foldere, fișiere de documente și programe etc. Și puteți indica un element specific al unei clase fie prin nume (prin nume) sau după număr de serie (prin index numeric).

Și, în sfârșit, ultima secțiune este „Proprietăți”. Aici vedem, în primul rând, că clasa „Container” este un descendent al clasei „Element” ( item ), adică are toate proprietățile sale. Dar această clasă are și câteva dintre ele. Vă rugăm să rețineți: unele dintre ele sunt marcate cu „” (numai pentru citire), aceste proprietăți nu pot fi modificate folosind comanda AppleScript.

Acum să vedem cum sunt descrise comenzile în dicționar. De exemplu, să luăm scriptul „Face” cu care ești deja familiarizat din exemple de scripturi. În partea de sus a paginii se află scopul comenzii (creați un element nou). Apoi - cum este scris (sintaxă) și ce parametri are. Rețineți că unii parametri sunt încadrați între paranteze drepte. Asta înseamnă ei în dicționar opțional parametrii. Când compunem un script, ne putem descurca fără ele, dar dacă le folosim, nu trebuie să punem paranteze. Completează ajutorul pentru o comandă indicând-o rezultat(Rezultat). În exemplul nostru, va fi o „referință” la obiectul creat.

Poftim. Puteți încerca deja să scrieți un script simplu. Aşa…

O, creatoare!

Cred că știți că fiecare fișier de pe un Macintosh are două caracteristici - un tip și un cod de creator, care permit Finder-ului să decidă cum să gestioneze acest fișier. De asemenea, nu este un secret pentru nimeni că adesea - de exemplu, după transmiterea prin Internet - aceste atribute se pierd. Desigur, există multe programe care le pot schimba. Dar să încercăm să ne facem propriul utilitar, folosind doar ceea ce este deja inclus în Mac OS.

Să începem cu cea mai simplă opțiune. Să presupunem că trebuie să atribuim fișierului letter.txt, situat pe Birou, tipul „TEXT” și codul de creator „ttxt” (SimpleText).

Selectați obiectul fișier în dicționarul Finder. Găsim proprietățile de care avem nevoie: tipul fișierului și tipul creatorului. Pentru a modifica valoarea unei anumite proprietăți, utilizați comanda „setraquo; (instala). Deci, întregul script ar trebui să arate cam așa:

spune aplicația „Finder” a spune fișierul „letter.txt”
set tipul său de fișier la"TEXT"
set tipul său de creator la"ttxt"
sfârşitul spune

Sau cam asa:

spune aplicația „Finder”
set tip de fișier de fișierul „letter.txt” la"TEXT"
set tipul de creator de fișierul „letter.txt” la"ttxt"
sfârşitul spune

Astfel, după cum puteți vedea, puteți fie să spuneți fișierului să-și schimbe proprietățile (în acest exemplu, cuvântul „sa” poate fi omis, deoarece scopul comenzii este clar definit fără el), fie Finder programul poate modifica proprietățile obiectului subordonat.

Nu degeaba am pus condiția ca fișierul să fie pe desktop. În caz contrar, aveam nevoie de un „lanț” mai lung de obiecte subordonate (ceva de genul „spune aplicației „Finder” să spună discului „Macintosh HD” să spună folderului „lecție” să spună fișierului „letter.txt”). Sau - pentru a doua versiune a scenariului - o indicație calea plină: „fișierul „Macintosh HD:lesson:letter.txt”” (Rețineți: calea în Mac OS este scrisă folosind două puncte).

Ei bine, scenariul este scris. Funcționează. Dar, sincer vorbind, nu există niciun beneficiu din aceasta - la urma urmei, pentru fiecare fișier ulterior trebuie să schimbați textul scriptului în sine. Wow, a făcut treaba mai ușoară! Trebuie să ne îmbunătățim programul. Să-l învățăm să întrebe utilizatorul ce fișier să proceseze. Deschideți dicționarul Finder, uitați și iată-le! Nimic potrivit. Chiar a făcut Apple o asemenea greșeală? Deloc...

„Nu ai același, dar cu nasturi sidef?”

Open Script Architecture (OSA) vă permite să achiziționați aproape orice element necesar al limbajului. Desigur, dacă cineva s-a obosit să scrie "plus"(Scripting Addition sau OSAX) care descrie un astfel de obiect și comenzile corespunzătoare. Aceste completări se află în folderul Scripting Additions, situat în folderul System (fost în Extensii). Orice script le poate folosi, indiferent de programul în care se află. în acest moment comenzi.

Să deschidem dicționarul Standard Additions (pentru a ajunge rapid la folderul Scripting Additions, există un buton special în dialogul Open Dictionary). Aici este - comanda „alege fișierul”. Rezultatul muncii sale va fi un link către fișierul selectat de persoană în dialogul standard Deschidere. Vom salva acest link într-o variabilă, pe care o vom numi, de exemplu, MyFile.

Scriptul nostru va arăta astfel:

spune aplicația „Finder”
set MyFile la alege fișierul
set tip de fișier de MyFile la"TEXT"
set tipul de creator de MyFile la"ttxt"
sfârşitul spune

Program destul de funcțional. Dar este posibil să-l faci mai convenabil? De ce să rulați scriptul separat, apoi să selectați numele fișierului în caseta de dialog - nu este mai bine să folosiți metoda Drag’n’Drop? Totul este în puterea noastră!

Picătură de scris

Deci, ce vrem să obținem și cum să-l obținem.

  1. Programul ar trebui să funcționeze independent de editorul de scripturi. Totul este clar cu aceasta, știm deja că pentru aceasta trebuie să fie salvat ca applet.
  2. Scopul scriptului este de a schimba proprietățile unui fișier dat. Avem deja această parte gata.
  3. Fișierul care este „desenat” pe imaginea de script ar trebui procesat. Aici începe distracția. Diverse lucruri se întâmplă în mod constant obiectelor „care trăiesc” în computerul nostru. evenimente. De exemplu, fișierul poate fi mutat, copiat sau deschis. Programul va porni, va executa unele comenzi sau nu va face nimic și, în sfârșit, se va termina. Pentru ca un obiect să „știe” cum să reacționeze la un anumit eveniment, este nevoie de o subrutină specială - "handler"(handler). Când fișierele, folderele sau unitățile sunt „aruncate” în applet, Finder îi trimite un mesaj de comandă „Deschidere” și o listă de obiecte „aruncate”. Pentru acest eveniment va trebui să scriem un handler.

În cel mai simplu caz, va arăta astfel:

pe deschide FileList — cuvântul „on” începe gestionarea evenimentelor
— la început scriptul funcționează singur, fără a afecta niciun program
set MyFile la elementul 1 de FileList
spune aplicația „Finder” - acum comandam Finder
set tip de fișier de MyFile la"TEXT"
set tipul de creator de MyFile la"ttxt"
sfârşitul spune
Sfârşit deschide - nu uitați să indicați că handler-ul s-a încheiat

Pentru a stoca temporar lista, am folosit variabila FileList. Variabilele pot fi denumite folosind orice combinație de litere latine, dar este indicat să le denumești în așa fel încât să poți înțelege din nume ce înseamnă această variabilă.

După cum puteți vedea, primul element din listă trecut la lansarea scriptului este procesat. Dar restul? Programul nostru pur și simplu nu le acordă atenție. Nu este greu de ghicit că următorul pas pe calea perfecțiunii va fi procesarea unui număr întreg de fișiere simultan.

O dată, o dată, din nou...

Până acum, toate comenzile scripturilor noastre erau executate una câte una în ordinea în care au fost scrise. Acum trebuie să repetăm ​​aceleași acțiuni de mai multe ori la rând. Va trebui să organizăm o structură specială - ciclu. AppleScript are o varietate de comenzi de control pentru aceasta. Puteți repeta acțiunile în avans de un număr specificat de ori sau le puteți efectua în timp ce o anumită condiție este îndeplinită. Dar aproape orice limbaj de programare are astfel de bucle. În sarcina noastră, o altă opțiune este ideală - „repetați pentru fiecare element al listei”. Cu el, scriptul va arăta astfel:

pe deschide FileList
repeta cu MyFile în FileList - asa se scrie inceputul unui ciclu
spune aplicația „Finder”
set tip de fișier de MyFile la"TEXT"
set tipul de creator de MyFile la"ttxt"
sfârşitul spune
sfârșitul repetă — trebuie să marchem sfârșitul structurii de control
Sfârşit deschide

De ce altceva are nevoie programul nostru pentru a deveni complet profesional? Și ea nu are suficient "foarte simplu de manevrat". La urma urmei, puteți „arunca” foldere și comenzi rapide în imaginea scriptului, dar ar trebui să funcționeze numai cu fișiere obișnuite.

Pe cine vrei tu, alege

Prin urmare, atunci când parcurgeți elementele listei, trebuie să determinați care este fiecare dintre ele. Numai dacă întâlniți un fișier obișnuit, schimbați-i proprietățile. O altă structură de control vă permite să alegeți dacă faceți sau nu operațiuni - operator condițional Dacă. Puteți determina dacă un obiect este un folder sau o comandă rapidă obținând informații despre acesta folosind comanda „info for” de la Standard Additions. Rezultatul va fi un obiect al clasei „informații fișier”. Acestea sunt proprietățile sale - „folder?” (dosar) și „comandă rapidă?” (alias) - vom verifica. Pentru că avem nevoie ca elementul să nu fie un folder ŞI nu a fost o scurtătură, vom conecta două condiții operatie logica„și” (când este suficient pentru a îndeplini oricare dintre condiții - SAU primul, SAU al doilea - folosiți conjunctivul „sau”). În general, ca urmare a raționamentului nostru, s-a obținut următorul scenariu:

pe deschide FileList
repeta cu MyFile în FileList
set theInfo la informații pentru MyFile
dacă(pliant de theInfo este fals) şi ¬
(alias de theInfo este fals) apoi
spune aplicația „Finder”
set tip de fișier de MyFile la"TEXT"
set tipul de creator de MyFile la"ttxt"
sfârşitul spune
sfârşitul dacă
sfârșitul repetă
Sfârşit deschide

Vă rugăm să rețineți că toate condițiile din declarația If trebuie scrise într-o singură linie. Pentru a face textul programului mai lizibil, poate fi util să „pliați” o linie lungă, așa cum se face în acest exemplu. Pentru a face acest lucru, apăsați combinația de taste „Opțiune-Retur”. Simbolul de continuare „¬” va apărea în text.

Desigur, în această scurtă lecție am putut doar să vă prezint puțin cele mai simple tehnici de lucru cu AppleScript. Dar cred că ești convins că nu este nimic complicat în asta. Încearcă! Sper să continui acest subiect în articolele viitoare.

Acesta este un limbaj de programare, o tehnologie care aparține companiei, este cel mai adesea folosită pentru a automatiza procesele de lucru și face posibil ca programele să comunice între ele. Wow :)

Nu am de gând să deschid o serie de articole pe această temă: „Applescript for dummies. Pas cu pas" dintr-un motiv simplu - există o mulțime de materiale pe acest subiect pe internet. Și pentru a nu rescrie grundul în felul meu și a nu reinventa roata, voi indica doar câteva surse care mi s-au părut cele mai potrivite. Eu însumi mă voi lumina de asta.

Aproape fiecare autor scrie că limbajul de scripting este atât de simplu încât orice utilizator cu cel puțin puține cunoștințe de engleză tradițională poate scrie în el. Și nu trebuie să stăpânești fiecare aspect al programării orientate pe obiecte. Există o parte din adevăr în asta, pentru că în scenariu

spuneți aplicației „Finder”

Afișează dialogul „Salut somnambuli!”

Este greu să nu înțelegi ce se cere de la ce program. Dar nu sunt de acord cu OOP. Dacă scrieți lucruri inutile precum bip sau spuneți „Cine este bărbatul?” , atunci da, poate nu știți ce sunt un ciclu și o clasă, iar OOP este încă departe de asta. Dar dacă doriți să învățați cum să scrieți programe sau scripturi pentru a face sarcinile zilnice mai ușoare pentru dvs. sau pentru o anumită bază de date, atunci este mai bine să știți ce sunt „Moștenirea” și „Încapsularea”.

De unde să încep?

Totul este simplu și la îndemână. Lansați Editorul de scripturi și accesați mai întâi ajutorul. Dacă utilizați versiunea rusă, nu ar trebui să existe deloc dificultăți.

Cine vrea o carte?

Dacă manualul standard nu este suficient sau este scris în așa fel încât totul să nu vă fie imediat clar, puteți apela și la cărți (electronice sau tipărite - depinde de dvs.). Deseori se face referire la cartea „AppleScript Language Guide”. Se pare că există un link către acesta în ajutorul Editorului de scripturi.

Este imposibil să nu ținem cont de alte resurse pe care compania de dezvoltare însăși ni le oferă. Există o carte pentru începători „AppleScript 1-2-3” sau o puteți cumpăra cu același nume.

Mai mare este mai bine

De ce să nu luați în considerare resursele online? La urma urmei, aici puteți găsi cele mai recente, iar ei răspund la recenziile cititorilor mai des și mai rapid. Să căutăm literatură într-o limbă accesibilă.

Pe lângă diverse articole de recenzie, puteți găsi „” pe Internet. Aș spune că acestea sunt special pentru cei care sunt interesați de Applescript. Cartea este pentru începători, este scrisă simplu, sunt puține pagini, dar sunt o mulțime de exemple. Exact ce ai nevoie. De acolo puteți descărca și o carte numită „”.

Manualele în limba rusă sunt bune, dar fără cunoștințe de bază de engleză va fi, ca să spunem ușor, dificil să înveți limbajul de scripting.

Dintre articole, aș fi atent la acesta. Mi-a plăcut pentru prezentarea detaliată a unora dintre principiile de bază ale limbajului de scripting în sine, „scurt și clar”.

Nu uitați și de diverse forumuri unde utilizatorii fac schimb de opinii, experiențe și scripturi gata făcute. Personal, îl am pe acesta în marcajele mele.

Înainte de a începe să căutați și să descărcați materiale, vă recomand să vă decideți asupra obiectivului dvs. Pentru dezvoltare generală, vă puteți familiariza cu unele surse. Pentru a scrie scripturi cu adevărat utile va trebui să petreceți câteva zile/săptămâni/luni (în funcție de abilitățile și timpul liber). Este foarte interesant și creează dependență.

În prezent, nu pot estima șansele unei persoane de a obține un loc de muncă ca programator sau tester Applescript. Cel mai probabil nu foarte mare. Dar dacă simți că este al tău, mergi înainte. Dacă vezi obiectivul și nu vezi obstacolele, nu contează cine are nevoie de el (cel puțin tu). Adevăratul talent va fi întotdeauna apreciat. Și ai șansa de a face munca pe care o iubești.

  • AppleScript Apple, . AppleScript AppleScript. , - .

    AppleScript.

    0 . . . . . . . . . . . . . . . . . . . . . 6

    1 . . . . . . . . . 7

    2 . . . . . . 10

    3 (I). . . . . . . . 13

    4 . . . . . . . . . . . . . . . . . . . . . 15

    5 . . . . . . . . . . . . . . . . . . . . . 17

    6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    8(II). . . . . . . 30

    9 ? ! . . . . . . . . 32

    10 . . . . . . . . . . . . . . . . . . 34

    11 . . . . . . . . . . . . . . 40

    13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    14 . . . . . . . . . . . . . . . . . . . 53

    16 . . . . . . . . . . . . . . . . 59

    17 . . . . . . . . 60 . . . . . . . . 60

    AppleScript Apple, . , AppleScript:

    AppleScript, AppleScript. , -, .

    AppleScript, . - AppleScript ( Adobe PhotoShop, QuarkXPress, Adobe InDesign). FileMaker Pro. , GraphicConverter, BBEdit, Microsoft Word AppleScript(). , AppleScript. , . . , AppleScript, AppleScript. , - AppleScript.

    . (.15). - AppleScript. , .

    AppleScript, AppleScript:

    , ; AppleScript, .., AppleScript; (Mac OS X)

    AppleScript; AppleScript; AppleScript (Mac OS X).

    AppleScript. , Java, . AppleScript, 10-, -. .

    5 AppleScript, . - AppleScript Studio, (Instrumente pentru dezvoltatori XCode).

    JavaScript, .

    () . , . , . , .

    . , : . - . , . : .

    AppleScript, . . Editor de scripturi (.2), ​​​​.

    Copyright (c) 2003 de Bert Altenburg

    : Bert Altenburg, - .

    1. . , - . , AppleScript. AppleScript.

    2. , PC, . - , -. Monitor CPU (utilități, aplicații), - . (Distributed Computing DC), Folding@home, . DC-, -. DC-. -- , DC- . , . ? DC- - . (), - . , - , . DC--: , . , DC- :

    www.aspenleaf.com/distributed/distrib-projects.html

    3. . , . () , - . - , . - , . - , :

    http://www.macinstruct.com/tutorials/crash/index.html

    AppleScript Mac OS. , - . , .

    , -. , (declarație), . , .

    AppleScript, . , 1.

    AppleScript:

    spune „Aceasta este o propoziție rostită”.

    Fred, Trinoids, Cellos, Zarvox, Victoria.

    spune „Aceasta este o propoziție rostită”. folosind „Zarvox”

    : AppleScript. , . , Victoria Zarvox.

    AppleScript. - , - . : . AppleScript - , . AppleScript, . (scriptibil). , AppleScript (Mac OS X), .

    Finder. Finder. , . Finder , - , . -, Trash, Finder.

    8, AppleScript.

    Adobe PhotoShop. PhotoShop. , Finder.

    AppleScript, .

    Spune, AppleScript (Mac OS X), Finder. AppleScript (Mac OS X) , - sfârșit tell . AppleScript Finder Finder, . , :

    spune aplicației „xyz”

    (spune blocului). xyz xyz. , AppleScript , - , . , . (, ("). : , AppleScript . . .)

    Finder. , Finder. Găsește, Găsește.

    spuneți aplicației "Finder" goliți coșul de gunoi deschideți discul de pornire sfârșitul spune

    Finder. Finder, - , . .

    Finder, AppleScript (Mac OS X).

    9 spuneți aplicația „Finder” goliți coșul de gunoi deschideți discul de pornire la sfârșitul semnalului sonor

    Finder. bip AppleScript. , .

    Bip (AppleScript (Mac OS X)) .

    spuneți aplicației „Finder” goliți bip-ul de gunoi deschideți discul de pornire sfârșitul spune

    Bip Finder, AppleScript (Mac OS X). , . , -, Finder, bip, Finder.

    AppleScript (Mac OS X). - , Finder, . ().

    spuneți aplicației „Finder” să golească bip-ul de gunoi și să deschideți discul de pornire

    AppleScript (Mac OS X), . () - , .

    spuneți aplicației „Finder” goliți coșul de gunoi spuneți deschideți discul de pornirespuneți „Am golit coșul de gunoi și am deschis discul de pornire pentru tine” folosind „Victoria”

    AppleScript (Mac OS X), Finder. , .

    Editor de scripturi, . Editor de scripturi AppleScript, Aplicații. , . .

    Compila. , AppleScript , AppleScript . Yo Finder! Aruncă-mi gunoiul (Finder!!!) Hei Finder! Curățați coșul (Finder,) Finder. (compilare) AppleScript (Mac OS X) : - . , . , - . Editor de scripturi.

    AppleScript (Mac OS X).

    spune „Învăț AppleScript pe calea ușoară!” folosind „Zarvox”

    Fugi, . Editor de scripturi, !

    Intră. Enter - Spațiu () (). Întoarcere (Shift) -. Întoarce-te.

    Compila. - Fugi, .

    Fugi, Comanda-R. : , -

    , (script compilat) (aplicație).

    : , - AppleScript,

    Executați editorul de scripturi.

    : , AppleScript ,

    Editor de scripturi. , - , (Preferințe de sistem). , . - , Editor de scripturi, Deschideți fișierul.

    : Salvare, - (numai rulare). , - .

    spuneți aplicației „Finder” goliți coșul de gunoi

    Editor de scripturi.

    Aplicație,:

    Aplicația aplicației Editor de scripturi. , xyz. - (-), pqr. - , AppleScript. , AppleScript pqr , spune .

    Editor de scripturi, -. , control . :

    1) Editor de scripturi de control. (.), Spune blocurilor. , Spuneți „Găsește”.

    2) Finder golește coșul de gunoi , (), 1. . - .

    2 + 6 = ...... = 3 * 4

    2 + 6 = xy = 3 * 4

    AppleScript. (variabile) , . - (identieri), . - AppleScript, setat.

    setați x la 25setați y la 4321.234

    AppleScript, . : (- , ( bug-uri)). , x. , Lățimea imaginii .

    setați lățimea imaginii la 8

    , (, -,). , AppleScript, - . , (8).

    AppleScript - . , setați, spuneți, la, bip , - AppleScript. , Lățimea imaginii, . -, .

    AppleScript, . , .

    setați imaginea Lățimea la 8setați imaginea Înălțimea la 6 setați imagineaSuprafațăZona la imagineLățimea *imaginea Înălțimea

    , (operatori), - .

    setați cubeEdgeLength la 10.0set cubeVolume la cubeEdgeLength ^ 3

    Editor de scripturi, . , . (Rezultat) , 10,0. , 1000,0. , cubeEdgeLength ^ 3 , .

    : . - . (numere întregi) , - , (. 13)

Din acest articol veți afla ce este AppleScript, de ce și cine are nevoie de el, cum puteți automatiza aplicațiile altora și să adăugați capabilități de automatizare la ale dvs.

Automatizează-l

Există adesea probleme pentru care este irațional să se creeze un proiect separat într-un limbaj compilat. De exemplu, atunci când trebuie să puneți rapid împreună un cod pe genunchi care ar trebui să facă pur și simplu o anumită treabă - fără decorațiuni GUI, gestionând tot felul de situații de excepție, optimizare și așa mai departe. Aici vin în ajutor limbajele de scripting - shell, Perl, PHP și așa mai departe. Toate (sau aproape toate) sunt disponibile sub Mac OS X. Dar în acest sistem de operare, pe lângă limbajele de scripting general acceptate, există și un limbaj de scripting special care este orientat în mod specific către Mac OS X și este strâns legat de ea. Acesta este AppleScript.

AppleScript a fost inclus în sistem începând cu sistemul 7. Creșterea din proiectul HyperCard (care conținea limbajul de scripting HyperTalk, care este foarte asemănător cu engleza naturală), AppleScript a fost creat inițial pentru a permite schimbul de date între sarcini, precum și pentru a controla lucru aplicații terță parte. AppleScript în sine are o funcționalitate destul de modestă: în acest limbaj, chiar și scripturile pentru efectuarea de sarcini relativ simple arată adesea ca apeluri către alte aplicații. Cu toate acestea, după o revizuire semnificativă a sistemului în timpul tranziției la linia Mac OS X, limbajul AppleScript a devenit mai flexibil și mai puternic, iar noul cadru Cocoa a permis dezvoltatorilor să construiască capabilități de automatizare în aplicațiile lor folosind AppleScript cu un efort minim.

Script simplu

Pentru a edita și executa scripturi vom folosi editorul de script standard. Îl puteți găsi în folderul /Application/AppleScript. Mai întâi, să scriem un script simplu „HelloWorld”.

Afișează alerta „Hello World!” # Afișați dialogul
spuneți „Bună lume” # Ieșire în coloane

Cred că nu este nevoie să explic nimic aici, dar aș dori să remarc accesul extrem de ușor la sintetizatorul de vorbire de la AppleScript folosind comanda say. Aceasta este o comunicare reală cu utilizatorul în stilul Apple :). Desigur, acest dialog poate fi ușor personalizat. De exemplu, adăugați butoanele necesare:

Panou cu butoane suplimentare

afișați alerta „Hello World!” butoane ("Bună ziua", "La revedere")
setați răspunsul la butonul returnat de rezultat
dacă răspunsul este „Bună ziua”, atunci
...
altfel
...
sfârşitul dacă

Acum să scriem ceva mai util. De exemplu, să lăsăm utilizatorul să selecteze un fișier și să citească conținutul acestuia:

# Panoul de selecție a fișierelor
setați fișierul la (alegeți fișierul cu promptul „Selectați un fișier de citit:” de tipul („TEXT”))
deschis pentru a accesa fișierul

Citirea conținutului

setați conținutul fișierului la (citiți fișierul)
închideți accesul la fișier

Aceste exemple arată clar ideea principală a AppleScript - este foarte aproape de limba engleză vie. Prin urmare, citirea scripturilor este ușoară chiar și pentru o persoană departe de a codifica. Fiecare comandă verbală poate fi completată cu substantive modificatoare și parametri.

Interacțiunea cu aplicațiile

AppleScript utilizează un mecanism de mesagerie pentru a comunica cu alte aplicații:

spuneți aplicației „Microsoft Word”
renunta
sfârşitul spune

Cu ajutorul comenzii tell, selectăm aplicația căreia îi vom trimite mesajul. ÎN în acest caz, cerem MS Word să iasă. Orice număr de comenzi poate fi trimis în blocul „tell - end tell”. Mesajele trimise către aplicație pot fi mai specifice. Totul depinde de ce comenzi au implementat dezvoltatorii săi. iTunes, de exemplu, exportă destul de multe comenzi și proprietăți în mediul AppleScript:

Lansați lista de redare dorită în iTunes

spune aplicației „iTunes”
redați lista de redare numită „Preferatul meu”
sfârşitul spune

Puteți afla setul de mesaje și tipuri de date pe care o aplicație le exportă în mediul AppleScript uitându-vă la terminologia acestuia (fișierul AppName.scriptRerminology din resursele aplicației). Pentru a face acest lucru, în Editorul de scripturi, accesați meniul „Fișier - Deschideți dicționar - ...” și selectați aplicația dorită.

Pentru a vă facilita lucrul cu clasele și comenzile pe care aplicația le exportă, acestea sunt organizate în secțiuni. Toate aplicațiile care acceptă scripting au cel puțin două secțiuni: una standard și una mai specifică această aplicație secțiuni. Secțiunea standard conține un set de comenzi standard pe care le acceptă orice aplicație Mac: deschidere, imprimare, închidere și ieșire. Conținutul secțiunilor rămase depinde de imaginația dezvoltatorilor.

Executați AppleScript din aplicația dvs

Dacă scrieți o aplicație în Objective-C/Cocoa, atunci este posibil ca unele lucruri să fie mai convenabile de făcut folosind AppleScript. Pentru a crea și executa scripturi în aplicațiile Cocoa, există clasa NSAppleScript. Iată un exemplu simplu de utilizare a acestuia - implementarea obținerii unei linii de stare a utilizatorului din aplicația iChat.

NSAppleScript *iChatGetStatusScript = zero;
iChatGetStatusScript = [ initWithSource: @"spune aplicației "iChat" să primească mesajul de stare"];
NSString *statusString = [stringValue];

Este posibil ca același lucru să poată fi făcut în alt mod fără a utiliza un script generat în timpul execuției, dar este puțin probabil ca codul alternativ să arate mai simplu decât acesta. Dacă scripturile sunt mari, le puteți stoca în resurse de pachet și le puteți citi atunci când este necesar.

Automatizare într-o aplicație Cocoa

Este foarte util să adăugați suport de scripting la aplicațiile dumneavoastră Cocoa, deoarece dacă aplicația dumneavoastră are o interfață cu AppleScript, atunci utilizatorul, scriind câteva rânduri în AppleScript, va putea să o personalizeze pentru nevoile sale și să o integreze cu alte aplicații. pe care le-a instalat și apoi, de exemplu, să automatizeze rezolvarea sarcinilor de rutină. Pentru a exporta tipuri și comenzi în mediul AppleScript, trebuie să le descrieți în fisiere speciale. Este posibil să faceți acest lucru în fișierele .scriptSuite și .scriptTerminology sau într-un singur fișier cu extensia .sdef. În ambele cazuri fișierele sunt în format XML, dar sdef este mai ușor de lucrat.

Conținutul fișierului scriptTermonology este afișat în Editorul de scripturi atunci când vizualizați dicționarul aplicației. Acest fișier conține o descriere a obiectelor exportate în AppleScript.

Deschizând fișierul scriptSuite în Editorul Plist, puteți vedea că acesta conține următoarele secțiuni principale:

  • AppleEventCode - un cod din patru litere care identifică aplicația pentru mediul AppleScript (codul trebuie să fie unic în cadrul aceluiași sistem);
  • Nume - numele secțiunii care conține comenzile și clasele exportate.

Dezasamblarea structurii interne a acestor fișiere nu are niciun rost, deoarece cel mai probabil va trebui să vă ocupați doar de fișierele sdef.

Exemplu de fișier sdef
















sdef combină terminologia de scripting cu descrieri detaliate ale comenzilor și tipurilor, care pot fi găsite în fișierele .scriptingSuit. Să punem acest lucru în practică prin crearea unei aplicații Cocoa care acceptă AppleScripting. Pentru a face acest lucru, în noul proiect Cocoa, adăugați steaguri Scripting și OSAScriptingDefinition cu numele fișierului nostru sdef la fișierul Info.plist:

...
NSApleScriptEnabled

OSAScriptingDefinition
Scrtipting.sdef

Să adăugăm următorul fișier Scripting.sdef la proiect:












Deci, de la AppleScript avem o proprietate disponibilă - myprop. Tot ce rămâne este să scrieți codul ObjC care va procesa citirea acestei proprietăți din scripturi. Pentru a face acest lucru, trebuie să creați categoria NSApplication, deoarece aceasta este clasa pe care am ales-o ca destinatar al mesajelor din scripturi.

#import
@interface NSApplication (Scripting) - (NSString *) myprop;
@Sfârşit
@implementation NSApplication (Scripting) - (NSString *) myprop
{
return @"Aceasta este proprietatea mea";
}

Dacă ne întoarcem acum la proprietățile aplicației noastre din AppleScript, vom vedea proprietatea noastră și valoarea acesteia printre ele:

spuneți aplicației „Scripting”
proprietăți
sfârşitul spune

Concluzie

Desigur, este imposibil să descriem aici toate capacitățile AppleScript și interacțiunea acestuia cu aplicațiile Cocoa. Da, acest lucru nu este necesar - există manuale pentru asta. Și noi, la rândul nostru, vom continua seria de articole despre codificare pentru platformele Apple și vă vom spune multe alte lucruri noi și interesante.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații