Dit is het eerste bericht in een nieuwe serie waarin enkele van onze favoriete lezers uit het verleden opnieuw worden bekeken die nog steeds geweldige en relevante informatie bevatten die u misschien handig vindt. Dit bericht is oorspronkelijk gepubliceerd op 7 juli 2009.
Het beste aan AppleScript is dat je geen geniaal programmeur hoeft te zijn om het te gebruiken. Eigenlijk hoeft u helemaal geen programmeerervaring te hebben. Dit artikel laat je zien hoe je een AppleScript voor bijna elke toepassing schrijft met behulp van de eenvoudige instructies die verborgen zijn in het kader van elke app. Geïntrigeerd? Lees verder!
AppleScript is een krachtige scripttaal die ingebouwd is in OS X. Het belangrijkste gebruik voor AppleScript is de automatisering van taken die normaal gesproken repetitief en tijdrovend zijn. Als freelancer heb ik bijvoorbeeld een hekel aan het wekelijks aanmaken van facturen voor mijn verschillende klanten. Om dit probleem op te lossen heb ik een AppleScript geschreven die de uren leest dat ik me aanmeld bij iCal, een factuur maakt in Microsoft Excel op basis van die uren en de facturen e-mailt naar mijn klanten. Alles met een klik op de knop!
Als u een AppleScript-bestand wilt maken, opent u de toepassing "Scripteditor" in de map AppleScript in de map Toepassingen. Je zou een eenvoudig venster moeten zien met een groot tekstveld met een reeks knoppen aan de bovenkant. Typ de volgende code in het tekstveld:
[Applescript]
vertel de applicatie "Finder"
weergavedialoogvenster "Hello World"
einde vertellen
[/ Applescript]
AppleScript probeert waar mogelijk eenvoudig Engels te gebruiken om codering extreem eenvoudig te maken. De meeste opdrachten in AppleScript bevinden zich in een "tell-blok". Het wordt een 'tell-blok' genoemd omdat u een bepaalde toepassing 'vertelt' wat u wilt. De bovenstaande code vertelt bijvoorbeeld de Finder om een dialoogvenster weer te geven met de woorden "Hallo wereld". Nadat u klaar bent met een opdracht of een reeks opdrachten voor een bepaalde toepassing, eindigt u het blok met "einde vertellen".
Onthoud altijd dat je de tellblokken op de juiste manier beëindigt of dat de code niet compileert!
Nadat u klaar bent met het invoeren van de bovenstaande code, klikt u op het hamerpictogram "Compileren". Als uw syntaxis correct is, wordt uw code automatisch opgemaakt en ingekleurd. Als u een fout heeft gemaakt, markeert Scripteditor het problematische gebied en geeft het u een bericht over wat er mogelijk verkeerd is gegaan. Hier volgt een korte verwijzing naar de verschillende kleuren die u in uw gecompileerde code ziet (te vinden in Scripteditor> Voorkeuren).
Nadat uw code is gecompileerd, klikt u op de knop "Uitvoeren". U zou het volgende dialoogvenster moeten zien:
Klik nu op de knop "OK" en bekijk de onderkant van uw Scripteditor-venster. Wanneer u een script uitvoert, vertelt Scripteditor u wat het resultaat was, of wat "geretourneerd" was. In dit geval wordt u verteld dat op de knop "OK" is geklikt.
Variabelen zijn in essentie hetzelfde in elke programmeertaal. Ze bieden een eenvoudige manier om veel informatie in een compact codefragment te openen en te manipuleren. Variabelen maken of "declareren" is voor elke taal anders. In AppleScript declareer je variabelen als volgt:
[Applescript]
zet theString op "Hello World"
vertel de applicatie "Finder"
display-dialoog theString
einde vertellen
[/ Applescript]
Er zijn verschillende dingen om op te merken over het vorige voorbeeld. Merk allereerst op dat variabelen worden gedeclareerd met behulp van de "set" en "to" commando's. Hiermee stelt u de naam van uw variabele in, in dit geval "theString", om iets te evenaren, in dit geval de tekst "Hello World". In veel programmeertalen moet u het type variabele opgeven dat u in de aangifte wilt hebben (integer, drijvende komma, tekst, etc.). AppleScript is echter intelligent genoeg om met uw variabelen te werken zonder enige instructie over het formaat.
Let ook op hoe ik mijn variabelenaam typte. Je kunt geen spaties in een variabelenaam hebben, dus het is een goede gewoonte om camel case (theString) of de underscore-methode (the_string) te gebruiken. Het maakt niet echt uit welke methode je kiest, zorg er gewoon voor dat je consistent bent in je hele code. Het is ook een goed idee om al uw variabelen betekenisvolle namen te geven. Wanneer u een andere programmeurscode opzoekt, kan het vervelend zijn om variabelenamen zoals "myVariable" te zien die geen indicatie geven wat ze zijn of waarvoor ze worden gebruikt.
Merk tot slot op dat, nu ik de tekst "Hello World" in een variabele heb geplaatst, ik die variabele keer op keer in mijn code kan oproepen. Als ik later besluit de tekst "Hallo wereld" in "Goedemorgen Dave" te veranderen, hoef ik alleen de tekst op de regel te veranderen waarop ik de variabele heb verklaard.
Je kunt allerlei soorten gekke dingen doen met variabelen, maar aangezien dit alleen bedoeld is als een korte introductie tot AppleScript, laat ik je er een paar zien. Typ de volgende code in:
[Applescript]
--Integer-variabelen
zet theFirstNumber op 3
zet het theecondenummer op 2
--Variabele bewerkingen
stel het antwoord in (theFirstNumber + theSecondNumber)
zet theAnswer op (theAnswer + 1)
--String-variabelen
zet theString op "3 + 2 + 1 ="
--Dialoogvenster weergeven
vertel de applicatie "Finder"
display-dialoog theString & theAnswer
einde vertellen
[/ Applescript]
U kunt uw code snel compileren door op de "enter" -toets te drukken (niet op de return-toets). Deze bevindt zich op het tien-toets nummerblok op desktopcomputers en naast de "Command" -toets rechts van de spatiebalk op laptops.
Naarmate uw script complexer wordt, is een beetje organisatie in orde. Door twee streepjes "-" vóór een regel tekst te typen, kunt u een opmerking invoegen. Gebruik opmerkingen om uw secties van code te scheiden en te beschrijven voor eenvoudige navigatie. In dit voorbeeld heb ik een tekenreeksvariabele (alleen tekst) en enkele integervariabelen gemaakt. Merk op dat u wiskundige bewerkingen op variabelen kunt uitvoeren. Hier heb ik "theFirstNumber" op gelijk aan drie gezet en "theSecondNumber" op twee en gelijk daarna toegevoegd in "theAnswer".
Merk ook op dat u een variabele kunt wijzigen nadat deze is gedeclareerd. Meteen na het instellen van "theAnswer" op de som van "theFirstNumber" en "theSecondNumber" (wat resulteerde in 5), veranderde ik de waarde van "theAnswer" door er een toe te voegen (resulterend in 6). Als u dit script uitvoert, ziet u het volgende resultaat:
Nogmaals, dit krast alleen het oppervlak van de soorten bewerkingen die u kunt uitvoeren op variabelen. Voor nu zou je gewoon moeten begrijpen dat een variabele niet statisch is. Veel van de kracht van elke programmeertaal is de mogelijkheid om variabelen te manipuleren om een breed scala aan taken uit te voeren.
Hoewel AppleScript zelf een breed scala aan opdrachten heeft die op elk programma of item in OS X kunnen worden toegepast, hebben de ontwikkelaars van elke toepassing de taak om volledige AppleScript-ondersteuning aan hun apps toe te voegen. Wat dit betekent is dat ontwikkelaars eenvoudige handleidingen moeten schrijven over hoe te communiceren met hun applicaties via AppleScript. Deze handleidingen worden "Woordenboeken" genoemd. Als u een woordenboek wilt bekijken, gaat u naar Bestand> Woordenboek openen in Scripteditor. Blader door de lijst met applicaties, klik op Mail en klik op "OK". Je zou het volgende venster moeten zien:
De kolom aan de linkerkant bevat de beschikbare "Suites" met opdrachten en items. Wanneer u op een suite klikt, ziet u alles in de hieronder weergegeven suite. U kunt dit voorbeeld verkleinen door in de tweede kolom te klikken en vervolgens nogmaals in de derde kolom. Suites bevatten opdrachten (C met een cirkel) en klassen (C met een vierkant), klassen bevatten eigenschappen (P) en elementen (E). Om te begrijpen hoe dit allemaal werkt, laten we dit woordenboek gebruiken om een script te maken.
Eerst hebben we een algoritme nodig, wat een mooie manier is om te zeggen dat we precies moeten noteren wat ons script zal doen. We willen een script maken om een e-mail samen te stellen en te verzenden. We willen variabelen gebruiken om het gemakkelijk te maken om zelf het bericht te wijzigen en naar wie het bericht wordt verzonden. Terwijl we ons algoritme schrijven, moeten we rekening houden met de manier waarop AppleScript werkt. Dit zijn de stappen die ik heb bedacht:
We weten al hoe we variabelen moeten maken die tekst bevatten, dus we hebben niet eens het woordenboek nodig voor de eerste stap. Dit is hoe de code eruit ziet:
[Applescript]
--Variabelen
stel recipientName in op "John Doe"
stel recipientAddress in op "[email protected]"
zet het onderwerp op "AppleScript geautomatiseerde e-mail"
stel de inhoud in op "Deze e-mail is gemaakt en verzonden met AppleScript!"
[/ Applescript]
Zoals je ziet, hebben we zojuist tijdelijke tekst in de variabelen gezet voor de naam en het e-mailadres van de ontvanger, evenals het onderwerp en de inhoud van ons bericht. Je kunt deze veranderen in alles wat je maar wilt. Zorg ervoor dat u uw eigen e-mailadres opneemt in de variabele recipientAddress, zodat u zeker weet dat het script goed werkt wanneer u de e-mail ontvangt.
Omdat we geen idee hebben hoe we Mail moeten laten weten om een nieuw bericht te maken, moeten we hier verwijzen naar het AppleScript-woordenboek. Als u op "Standaardsuite" klikt, ziet u een aantal veelvoorkomende opdrachten die standaard in AppleScript zijn opgenomen. Wetende dat we een nieuw bericht willen "creëren", scrollen we gewoon door de opties en vinden we iets equivalent. U zult zien dat er geen "create" -opdracht is, maar ongeveer halverwege is er een "make" -opdracht. Dat klinkt perfect, dus we weten nu dat we AppleScript moeten vertellen dat we iets willen "maken".
Klik vervolgens op de "Mail" -suite. We hebben al onze opdracht (merk) dus scroll naar beneden langs de commando's (werkwoorden) tot je de klassen (zelfstandige naamwoorden) ziet. De eerste klasse die we tegenkomen is "uitgaande boodschap", wat geweldig is, want dat is precies wat we willen! Klik nu op de klasse "uitgaand bericht" en bekijk de beschikbare eigenschappen hieronder.
We moeten onze variabelen invoegen voor de naam van de ontvanger, het e-mailadres van de ontvanger, het onderwerp en de inhoud van het bericht. In de lijst met eigenschappen staat niets over de ontvanger, maar er zijn eigenschappen voor onderwerp en inhoud. We weten nu de juiste syntaxis om naar deze eigenschappen te verwijzen. Merk op dat het woordenboek u het formaat geeft om de eigenschappen te definiëren. Voor het onderwerp bijvoorbeeld, typen we het woord "onderwerp" gevolgd door een dubbele punt gevolgd door de tekst van het onderwerp.
Ook in deze suite vind je een "send" -opdracht, die we kunnen gebruiken om het bericht te verzenden door simpelweg "send" te typen. We moeten nog steeds de juiste syntaxis kennen voor de naam en het e-mailadres van de ontvanger. Omdat het niet in deze suite staat, klikt u op de "Message" -suite. Ongeveer halverwege de lijst met klassen vinden we "ontvanger". Klik op de klasse van de ontvanger en we zien dat we opnieuw gewoon Engels kunnen gebruiken om naar de eigenschappen van de ontvanger te verwijzen. We typen gewoon 'naam' en 'adres'.
U kunt de zoekfunctie gebruiken om eigenschappen, klassen, elementen en opdrachten snel op te sporen.
Nu zijn we klaar om onze berichtvariabele te maken met behulp van de syntaxis die we zojuist hebben geleerd. Dit is hoe de code eruit ziet:
[Applescript]
--Variabelen
stel recipientName in op "John Doe"
stel recipientAddress in op "[email protected]"
zet het onderwerp op "AppleScript geautomatiseerde e-mail"
stel de inhoud in op "Deze e-mail is gemaakt en verzonden met AppleScript!"
--Mail Tell Block
vertel de applicatie "Mail"
--Maak het bericht aan
stel theMessage in om een nieuw uitgaand bericht met eigenschappen te maken subject: theSubject, content: theContent, visible: true
einde vertellen
[/ Applescript]
Merk op dat ik een tell-blok heb gemaakt om alle opdrachten naar de mailtoepassing te omsluiten. Vervolgens stel ik een variabele in (theMessage) om een nieuw "uitgaand bericht" te maken met de hierboven besproken eigenschappen. Merk ook op dat sets met eigenschappen altijd tussen haakjes staan.
Nu we onze berichtvariabele hebben gemaakt, moeten we die variabele bellen en een nieuw bericht maken met de eigenschappen van theMessage. We moeten ook de ontvangers instellen en het bericht verzenden. Om dit te doen, gebruiken we een tell-blok op onze variabele. Dit is ons voltooide script.
[Applescript]
--Variabelen
stel recipientName in op "John Doe"
stel recipientAddress in op "[email protected]"
zet het onderwerp op "AppleScript geautomatiseerde e-mail"
stel de inhoud in op "Deze e-mail is gemaakt en verzonden met AppleScript!"
--Mail Tell Block
vertel de applicatie "Mail"
--Maak het bericht aan
stel theMessage in om een nieuw uitgaand bericht met eigenschappen te maken subject: theSubject, content: theContent, visible: true
--Stel een ontvanger in
vertel theMessage
maak nieuw voor ontvanger met eigenschappen name: recipientName, address: recipientAddress
--Stuur het bericht
sturen
einde vertellen
einde vertellen
[/ Applescript]
Eerst hebben we een nieuwe kopie gemaakt van theMessage (die alle eigenschappen overneemt die we erin hebben gestopt) en deze instellen op "ontvanger met eigenschappen". Dit vertelt Mail dat we een ontvanger met de volgende eigenschappen willen toevoegen. Hier hebben we alleen de syntaxis gebruikt die we eerder hebben geleerd en de variabelen voor de naam en het adres van de ontvanger.
Ten slotte hebben we de opdracht "verzenden" gebruikt om ons bericht te verzenden. Merk op dat we twee tell-blokken hebben om deze keer te sluiten. Zodra je je code hebt gecompileerd en eventuele fouten hebt gerepareerd, klik je op "Uitvoeren". E-mail moet het bericht automatisch maken en verzenden. Tadaah! Controleer uw verzonden map om te controleren of alles werkte.
Gefeliciteerd, je hebt je eerste AppleScript gemaakt! U kunt het opslaan als een eenvoudig script dat u kunt terugkomen en bewerken of als een toepassing die automatisch wordt uitgevoerd wanneer u het opent.
Ik hoop dat deze beginnersgids je aan het denken zet over allerlei soorten processen en taken die je graag wilt automatiseren. De syntaxis die ik u samen met de AppleScript-woordenboeken heb laten zien, zal u een lange weg banen. Als u echter op een aantal handige manieren echt geïnteresseerd bent in het implementeren van AppleScript, moet u meer lezen. Apple biedt veel informatie over AppleScript op hun website. Hier is een goede plek om te beginnen.
Een andere website waar ik veel van heb opgekregen is T & B. Het biedt een aantal echt diepgaande uitleg en tutorials om te volgen (een beetje gedateerd, maar grondig en gratis). Voel u welkom om een reactie achter te laten en laat ons weten of u deze tutorial nuttig vond! Welke andere AppleScript-tips zou je graag in de toekomst willen zien??