AppleScript | ||
---|---|---|
Utvikler(e) | ||
Apple http://developer.apple.com/applescript/ | ||
Generell informasjon | ||
Vanlige utvidelser | .scpt, .scptd, .applescript | |
Dukket opp i | 1993 | |
Siste stabile versjon | 2.2.1 | |
type system | dynamisk | |
påvirket av | Hyperkort | |
Operativsystem | System 7 , Mac OS 8 , Mac OS 9 og Mac OS X | |
Tillatelse | privat lisens | |
Applescript er et programmeringsspråk utviklet av Apple og designet for å kjøre under Mac OS -systemer . Generelt er Applescript ordet som brukes for å betegne Mac OS-skriptmiljøet, ment å fungere parallelt med GUI .
Applescript-prosjektet var en spin-off av HyperCard -prosjektet . HyperCard inneholdt et engelskbasert programmeringsspråk kalt HyperTalk , som kunne brukes til å inkludere logisk innhold i et HyperCard-program. Apple-ingeniører trodde at et lignende skriptspråk kunne designes for å brukes med alle programmer, og Applescript-prosjektet ble startet der.
MacOS trengte dype endringer og forbedringer for å implementere Applescript. Mange av disse endringene ble utgitt med utgivelsen av System 7, spesielt Apple Event -konseptet . Applescript konkurrerte om utviklernes oppmerksomhet med andre nye teknologier som ble utgitt på samme tid ( Baloon-hjelp , Publish and Subscribe , etc.). For noen av applikasjonene var Applescript den vanskeligste teknologien å implementere, og krever at store deler av lavnivåkode ble skrevet om, og til og med Apples eget applikasjonsrammeverk, MacApp , støttet ikke Apple Events på en stund. .
Utgivelsen var i oktober 1993 som en del av system 7.1.1 (den første store oppdateringen til system 7). QuarkXPress (versjon 3.2) var en av de første store applikasjonene som støttet Applescript, og som et resultat ble Applescript bredt tatt i bruk i Apples publiseringsmarkedssegmenter. Selv om det er diskutabelt, var grunnen til at Mac-plattformen forble markedsleder etter utgivelsen av QuarkXPress og andre applikasjoner for Microsoft Windows -plattformen at den var den eneste som støttet automatisering av komplekse arbeidsflyter.
Overgangen til Mac OS X og dets Cocoa - rammeverk har betydd en bedre implementering av Applescript. Kakaoapplikasjoner tilbyr grunnleggende Applescript-støtte uten innsats fra utvikleren, og kan nå dype nivåer av støtte med en liten investering av utviklertid. AppleScript Studio , utgitt med Mac OS X 10.2, lar brukere programmere hele applikasjoner ved hjelp av Applescript- og Cocoa-objekter.
Applescript ble først og fremst tenkt som et skriptprogrammeringsspråk, og tilbyr brukere et intelligent kontrollverktøy og tillater kommunikasjon mellom forskjellige applikasjoner.
Systemer før System 7 hadde en rudimentær hendelsesmodell der et fast antall hendelser på lavt nivå, for eksempel "tast ned" eller "museknapp ned", kunne utføres. Hver applikasjon var ansvarlig for å administrere og oversette dem til handlinger på høyt nivå som var fornuftige for brukeren, for eksempel «Utfør Lim inn menyalternativ». I mange tilfeller inneholdt den samme hendelsen både konseptet for handlingen (klikk) og instruksjonene for utførelse av den (når du klikket, utfør Lim inn).
Implementering av Applescript krevde at utvikleren skulle skille handling fra utførelse, en jobb Apple refererte til som "Factoring". Programmerere ble oppfordret til å skrive to forskjellige måter å håndtere hendelser på, en for håndtering av hendelser på lavt nivå (klikk, tastetrykk osv.) og en for hendelser på høyt nivå (Apple-hendelser).
På Mac OS X er Applescript mye enklere for utviklere å implementere, spesielt for programmer utviklet i Cocoa. I motsetning til Mac OS hvor hendelser behandles av applikasjoner, blir hendelser under Cocoa omgjort til en instruksjon på høyt nivå av NSApplication-objektet, og deretter dirigert til riktig mål. Dette betyr at alle Cocoa-applikasjoner har "Factoring" gjort, programmereren skriver normalt ikke noe om håndteringen av hendelsen og må kun skrive hvordan applikasjonen vil reagere på prosessene som hendelsen ber om.
En annen viktig fordel er at kakaoobjekter presenteres for oss som standard slik at alle kan få direkte tilgang til dem. Under kakao er Applescript mye "lettere"; skriptmotoren tolker skriptet, oversetter objektnavnene til deres interne format, og sender dem deretter til målapplikasjonen. teknologiske konsepter som er? er behov, sortering ect.
Mens Apple-hendelser er en måte å sende instruksjoner til applikasjoner på, er Applescript et spesifikt språk for å generere Apple-hendelser. I tråd med Mac OS-tradisjonen for brukervennlighet, er Applescript-språket designet basert på "naturlig språk"-metaforen, på samme måte som GUI er basert på skrivebordsmetaforen . Applescript-programmer er generelt lesbare og redigerbare av alle. Det er basert på HyperTalk-språket fra HypeCard, og forbedret slik at det ikke bare kan referere til verden, men teoretisk referere til ethvert dokument. For dette formål introduserte Applescript-teamet den nye AppleEvent Object Model (AEOM), som definerte objekter som enhver applikasjon visste om.
AEOM definerte vanligvis et visst antall objekter, for eksempel "dokument" eller "avsnitt", og handlinger som kunne gjøres med dem, for eksempel "lukk" eller "kopi". Systemet definerte også måter å referere til objektegenskaper, slik at man kunne peke på "tredje avsnitt i dokument 1", eller "fargen på det siste ordet i det aktive vinduet". AEOM bruker en ordbok for å assosiere Apple Events med menneskelesbare objekter, og tillater oversettelse frem og tilbake mellom Applescript og Apple Events. For å finne ut hvilke elementer i en applikasjon som kan skriptes, kan du konsultere disse ordbøkene (for eksempel i Xcode og skripteditoren).
Den typiske Hello World er skrevet i AppleScript med følgende kode:
vis dialogen "Hei verden!"Resultatet oppnådd ved utføring av skriptet er et nytt vindu som det som vises i margen.
Det er to typer kommentarer i AppleScript:
I tillegg kan vi også starte skriptet med linjen #!/usr/bin/osascript for å kunne kjøre tekstfilen som en Unix-kjørbar.
Variabler trenger ikke deklareres og er ikke sterkt skrevet. To metoder kan brukes for å tilordne en gitt verdi til en variabel:
sett VariableName til VariableValue --o kopier VariableValue til VariableNameVariabelnavn skiller ikke mellom store og små bokstaver , så myVariable og MyVariable er likeverdige. Variablenavn kan inneholde bokstavene a til z , unntatt ñ , tall og tegnet _.
De grunnleggende typene i AppleScript er:
Eksempler på disse typene er:
--Booleans: satt sann til sann sett usann til usann sett nummer til 10 --nummer er av typen Number sett teksten til "Dette er en tekst" sett listen til { verdi1 , verdi2 , verdi3 } -- De forskjellige verdiene er atskilt med komma sett register til { tag1 : verdi1 , tag2 : verdi2 } -- Taggen er en unik identifikator som kommer foran verdienDatatypene kan endres for den brukes:
TypeValue1 som EndTypeVerdien som returneres av dette uttrykket er representasjonen av typen FinalType av verdien TypeValue1 . For eksempel:
2 som tekst -- returnerer "2" sant som tekst -- returnerer "true" "3.14" som tall -- returnerer 3.14 --Det er også umulige konverteringer: "tekst" som tall --Går en feilFunksjonserklæringer i AppleScript, kalt behandlere , kan ha flere former:
på funksjonsnavn for parametrisk (* funksjonstekst *) --hvis vi vil at den skal returnere en verdi : returner resultatet sluttfunksjonsnavn --For å kalle opp funksjonen, bruk: FunctionName for aVariableDu kan endre ordet fortil ett av følgende: about, above, against, apart from, around, aside from, at, below, beneath, beside, between, by, for, from, instead of, into, on, onto, out of, over, since, thru (o through), under. Funksjoner med flere parametere kan defineres ved hjelp av flere av ordene oppført ovenfor, forskjellige for hver parameter.
på brøk for teller over nevner returner teller / nevner sluttbrøk _Funksjonsanrop kan gjøres med parameterne i en annen rekkefølge enn den som er deklarert:
brøk for 12 over 24 brøk over 24 for 12 --De to samtalene er likeverdige og returnerer 0,5Funksjoner kan også deklareres med posisjonsparametere:
on functionName ( parameter1 , parameter2 ) --function body end functionNameSlik at funksjonen ikke trenger parametere, skrives kun parentesene, uten navn mellom dem. Funksjoner kan også defineres ved å endre onvedto
Spesielle funksjonerNår et skript lagres som et program, er det 4 funksjoner som kan deklareres slik at det har visse virkemåter:
Run
Det er funksjonen som automatisk kalles opp når du kjører et skript eller starter et skript som er lagret som en applikasjon. Det kan defineres på to måter:
Open
Skriptet mottar ordren om å utføre funksjonen opennår brukeren drar filer til programikonet, og sender en liste over aliaser til de drade filene som et argument.
på åpne filnavn --kommandoer for å kjøre end openIdle
Når du lagrer som applikasjon, kan du velge alternativet La være åpen . Dette betyr at hvert 30. sekund, som standard, sendes ordren for å utføre funksjonen til applikasjonen idle. Tiden som går mellom anrop til funksjonen kan endres med verdien som funksjonen returnerer: den må være et heltall og representerer tiden i sekunder mellom anrop, for standardverdien 0 returneres.
on indle --kommandoer for å kjøre return numberOfSeconds slutt inaktivQuit
Funksjonen quitkalles opp når applikasjonen mottar ordren om å lukke. Hvis kommandoen vises under kjøring continue quit, avsluttes applikasjonen, men hvis en blir funnet returneller funksjonen avsluttes før den finner den, lukkes ikke applikasjonen.
på quit --kommandoer for å kjøre hvis betingelse , fortsett deretter quit else return end if end quitI dette tilfellet vil søknaden bare bli avsluttet hvis den condicioner sann.
Som i andre programmeringsspråk, er det to typer betingede utsagn:
--Enkel betinget: if condition then --Setninger som skal utføres slutter if --Sammensatte betingelser: hvis betingelse1 så --Bruk av den første betingelsen annet hvis betingelse2 deretter --Brødteksten i den andre betingelsen annet --Bruk som utføres hvis de tidligere betingelsene ikke er oppfylt slutt hvis LoopsDet finnes flere typer løkker:
Tell -blokken har to varianter:
--Enkel form fortell destinasjon til action_to_do --Sammensatt form fortell destinasjon --Setninger for å utføre sluttfortellTell -sløyfen utfører setningene i henhold til funksjonene og egenskapene som er definert på målobjektet . Sistnevnte kan være av typen applikasjon , dokument eller av typen script , normalt definert av brukeren, blant andre.
Den kan for eksempel brukes til å åpne et nytt Finder-vindu:
fortell applikasjonen "Finder" lag nytt Finder- vindu slutt fortellNår det oppstår en feil under kjøringen av et skript, stoppes prosessen. For å unngå det og for å kunne fortsette med utførelsen, brukes følgende kode:
--Enkel metode: prøv --Uttalelser som kan forårsake feil slutt prøv --Sammensatt metode: prøv --Uttalelser som kan forårsake feil på feilbeskrivelse nummer n --Uttalelser som skal utføres hvis det oppstår en feil slutt prøvNår en feil vises, sendes en tekst som beskriver feilen, beskrivelsen og et nummer som identifiserer feiltypen, n, til feil . For eksempel når du kjører koden:
prøv " test " som boolsk på feilbeskrivelse nummer n visningsdialogbeskrivelse visningsdialog n avslutt prøvFeilbeskrivelsen er "Kan ikke konvertere "test" til boolsk type." og feilnummeret er -1700
Utsagn kan også brukes til å markere en feil, som stopper kjøring av kode med mindre den er inne i en prøveblokk . Syntaksen er som følger:
feilbeskrivelseOfError number numberOfError _De fleste applikasjoner utviklet av Apple kan håndteres med AppleScript, for eksempel:
Manzana. Språkveiledning for AppleScript . Hentet 6. juli 2012 .