Steeds meer geruchten over een Tablet van Apple De geruchtenstroom over een nieuwe Tablet computer van Apple blijven toenemen. Eerder kon de The Financial Times al melden dat ze met mensen hebben gesproken die aan het...

Readmore

Nieuw materiaal koelt electronica 100x efficienter Op popsci.com was te lezen dat Georgia Tech onderzoekers bezig zijn met het ontwikkelen van een nieuw materiaal die elektronica 100 x efficiënter moet gaan koelen. Het materiaal...

Readmore

15 artikelen over CSS die elke webdesigner gelezen... Cascading Style Sheets (afgekort tot CSS) is een zeer populaire taal die voornamelijk voor de opmaak van webdesign gebruikt wordt. CSS is geen moeilijke taal om te leren...

Readmore

21 behulpzame cheat-sheets voor desigers en coders Een allround webdesigner beperkt zich tegenwoordig niet alleen maar met het schrijven van HTML code maar maakt ook gebruik van programmeertalen en grafische applicaties....

Readmore

MooTools tutorials Mootools is een JavaScript framework dat je kunt gebruiken om leuke effecten en functionaliteiten aan je website toe te voegen. Op de demo website van Mootools.net heb ik...

Readmore

Technologie weblog Rss

AppleScript (H3)

Terug naar: AppleScript Hoofdstuk 1 AppleScript Hoofdstuk 2

Door het grote succes van de vorige hoofdstukken heb ik besloten om wat vaart achter het derde hoofdstuk te zetten. In hoofdstuk twee hebben we het over verschillende opdrachten gehad die we in AppleScript kunnen gebruiken, in dit hoofdstuk gaan we daarmee verder. Ook gaan we in dit hoofdstuk de verschillende mogelijkheden tussen AppleScript en verschillende programma’s zoals bijvoorbeeld iTunes behandelen. In hoofdstuk 3 gaan gaan we het volgende behandelen:

  • Scripts opslaan als applicatie
  • Mapacties
  • Bibliotheek (library) raadplegen
  • Een script opnemen
  • Paden (Path)
  • AppleScript en iTunes
  • AppleScript en Mail

Scripts opslaan als applicatie

We hebben in de voorgaande hoofdstukken AppleScripts gemaakt die we in de Script Editor lieten uitvoeren d.m.v. een RUN optie:
run applescript
Dit is voor ons een handige manier om de werking van een script te testen, maar geen mooie manier om de gebruikers het script te laten activeren. Daarom heeft AppleScript een optie om het script op te slaan als een applicatie. D.m.v. deze optie is het voor de gebruiker gemakkelijker om het script te activeren. Het script gedraagt zich dan ook als een programma/applicatie, de gebruiker kan in zo’n geval de icoon dubbelklikken en zo het script activeren. Ook is het mogelijk om de icoon te verplaatsen naar de Dock. Maak voor jezelf een kort script in de Script Editor:

  • Ga naar File (Bestand) in het menuvenster van de Script Editor
  • Klik dan op Save As (Bewaar als)
  • Kies zelf een naam voor je script
  • Kies de locatie waar je het AppleScript wilt bewaren
  • Kies uit de File Format Application (Programma)
  • Druk op Save (Bewaar)

Zo ziet de icoon er vervolgens uit:
icoon applescript applicatie
Gefeliciteerd, je hebt net een echt computerprogramma gemaakt! :-)

Mapacties in AppleScript

Mapacties kunnen zeer handig zijn wanneer je een script aan een folder wilt koppelen. Apple heeft een programma gemaakt die dit koppelproces voor je automatiseert. Maak voor jezelf een folder aan:

Bijvoorbeeld: “Test-Folder”

Klik vervolgens met je rechtermuis op de folder:
folder acties applescript
En klik op “Enable Folder Actions”

Nu heb je aan de folder “Test Folder” een optie aangezet die ons in staat stelt om folder acties te gaan koppelen. Nu moeten we nog een script aan deze folder selecteren. Klik alweer met je rechtermuisknop op de folder die we hebben aangemaakt:

Je krijgt nu een optie: “Attach a Folder Action”
attach a folder action in Applescript
Wanneer je voor deze actie kiest, dan krijg je een Finder Window waar je het desbetreffende script kunt selecteren die je bijv. al hebt gemaakt. Er zijn ook standaard scripts aanwezig. Klik i.p.v. de andere 2 opties de: “Configure a Folder Action” Je krijgt nu een venster waar je een voorgeinstalleerd script kunt selecteren.

FolderActies kunnen heel handig zijn, denk hierbij aan scripts die je er op attenderen als iets in een folder veranderd zoals: verplaatsing van een bestand of verandering etc. Of scripts die automatisch een bestand in een desbetreffende folder zetten. Je kunt het zo gek niet bedenken en het kan met AppleScript met combinatie van FolderActies

Bibliotheek (library) raadplegen

We weten al dat AppleScript met verschillende programma’s kan communiceren. Er zijn veel programma’s en dus veel AppleScript opdrachten voor de specifieke functies. Apple heeft al deze opdrachten gesorteerd in een Bibliotheek zodat de gebruiker makkelijk per programma alle opdrachten kan vinden. Een Bibliotheek is een kennisbron voor degene die met AppleScript wil gaan programmeren. Om de bibliotheek van AppleScript te openen doe je het volgende:

  • Open de ScriptEditor
  • Ga naar File en kies Open Dictionary (in Tiger was het volgens mij Window en dan Dictionary, maar dat weet ik niet meer zeker, sorry daarvoor.)

Je zult het volgende venster te zien krijgen:

(Hoe het venster eruit ziet hangt natuurlijk af of je Leopard of Tiger gebruikt)
applescript dictionary leopard
Zoals je nu ziet, zie je bijna alle programma’s in je lijst staan. Nu is het mogelijk om per programma AppleScript opties te kiezen. Dubbelklik op een willekeurig programma uit de lijst. Je zult nu een venster te zien krijgen die uit drie kolommen en een uitleg gedeelte bestaat:
applescript dictionary finder leopard
In het venster dat hierboven is afgebeeld zie je dat je alle items die de Finder ondersteunt te zien krijgt. Zo kan je gaan zoeken naar specifieke opdrachten per programma, handig toch?

Een script opnemen

Wanneer je de basis van AppleScript onder de knie hebt en toch nog meer wilt leren is het Record optie van AppleScript een uitkomst. Hoe werkt dit??

  • Open de ScriptEditor
  • Klik op de record applescript
  • En doe nu even niets!

Wanneer je op de knop Record hebt gedrukt wacht AppleScript totdat je actie gaat ondernemen.We gaan samen een voorbeeld maken: Wanneer je op de Record knop hebt gedrukt wacht AppleScript nog steeds totdat je actie gaat ondernemen.

  • Open nu de Finder
  • Ga naar je Home-Map
  • Maak in je Home-Map een nieuwe Folder aan met de naam: “Test-Folder”
  • Sluit de Finder
  • Klik op Stop in het AppleScript venster

Zoals je ziet heeft AppleScript zelf een code gegenereert dat er ongeveer zo uit ziet:

tell application "Finder"activate
select window of desktop
set target of Finder window 1 to folder "accessko" of folder "Users" of startup disk
make new folder at folder "accessko" of folder "Users" of startup disk with properties {name:"untitled folder"}
set name of folder "untitled folder" of folder "accessko" of folder "Users" of startup disk to "Test-Folder"
close Finder window 1
end tell

Zoals je ziet is dit een makkelijke manier om een script te maken. Je kunt deze script natuurlijk zelf handmatig aanpassen. Door deze techniek toe te passen krijg je meer inzicht hoe het script werkt want je hebt immers het script zelf al een keer uitgevoerd. Deze techniek is natuurlijk wel beperkt en wordt niet door alle programma’s ondersteund. Maar makkelijk blijft het wel.

Paden (Path)

Paden zijn locaties van verschillende folders en bestanden in de Directoryhierarchie. Deze paden kunnen heel belangrijk zijn wanneer je een script schrijft. Je zou bijvoorbeeld een bestand A niet willen verplaatsen naar de Prullenbak maar naar je Home-Folder.

Hoe je een Pad (Path) in een script kunt definiëren zie je hieronder:


-- bepaal de locaties en zet deze in een variable
set theDocs to "Macintosh HD:Users:Admin:Documents
set theMusic to "Macintosh HD:Users:Admin:Music
set thePic to "Macintosh HD:Users:Admin:Pictures
-- start de Finder en maak in desbetreffende Folders de mappen aan.
tell application "Finder"
make new folder at theDocs with properties {name:"Documenten-december"}
make new folder at theMusic with properties {name:"Muziek-december"}
make new folder at thePic with properties {name:"Fotos-december"}
end tell

AppleScript en iTunes

Het is mogelijk om iTunes te besturen d.m.v. AppleScript. Je kunt hele simpele scripts schrijven zoals deze:

tell application "iTunes"
play
end tell

Dit script zorgt ervoor dat de applicatie “iTunes” opstart en vervolgens start met het spelen van muziek.We zitten inmiddels in Hoofdstuk 3 dus we kunnen nu meer dan dat. Het volgende script moet voornamelijk handig zijn. We maken hieronder een Wekker-script dat werkt in combinatie met iTunes en iCal. De werking van het script zal er ongeveer zo uitzien:

  • We gaan iTunes starten
  • We zorgen dat het iTunes venster op de achtergrond wordt gezet
  • We zorgen dat de playlist Wekker wordt geactiveerd
  • We zetten het geluid op 25%

Maak eerst een playlist in iTunes met de naam “Wekker” en zet vervolgens een nummer in deze playlist die je graag wilt horen tijdens het wekken.

Het script ziet er als volgt uit:

tell application "iTunes"
play
set visible of front window to false
set view of front window to playlist "Wekker"
copy (get view of front window) to myPlaylist

set sound volume to 25 -- 0 = no volume, 100 = full volume
play myPlaylist
end tell

Sla dit script vervolgens op in je map waar je al je scripts bewaart. Nu we de Playlist en het script hebben gaan we deze op een bepaald tijdstip activeren, dit doen we door middel van iCal.

  • Start iCal
  • Ga naar Vandaag
  • Maak een nieuwe Event (Afspraak)
  • Bewerk je Event en zet de alarm-optie op Run Script
  • ical run script
  • Zoek je script op en selecteer deze

Klaar is Kees, als het goed is moet je iTunes automatisch starten en het nummer uit je playlist spelen.

Het enige probleem is dat je “wekker” niet afgaat wanneer de computer uitstaat of in de slaapmode staat.Ook hiervoor hebben we een oplossing. :-)

Wanneer je computer in de slaap-mode staat is het mogelijk om op een ingestelde tijd hem wakker te maken. M.a.w. is het mogelijk om paar minuten voordat de wekker gaat je computer te activeren.

  • Ga naar System Preferences (Systeem Voorkeuren )
  • Vervolgens naar Energy Saver
  • Kies Schedule…
  • Kies vervolgens je tijd en datum

Energy Saver OS 10.5 Leopard
Veel plezier ermee, als je dit script gebruikt kun je niet meer te laat komen. :-)

AppleScript en Mail

AppleScript kan ook heel goed met Mail overweg. Er bestaan veel scripts op het internet voor Mail maar we maken hieronder zelf eentje.

We maken hieronder een script dat gewoon een e-mail verstuurt.

--de variabelen
set theOntvanger to "info@een-email.nl"
set theOnderwerp to "Mijn eerste AppleScript voor Mail"
set theBericht to "Dit is mijn eerste AppleScript voor Mail. Deze Script gaat ervoor zorgen dat de Mail wordt geactiveerd en de inhoud van de variabelen gaat verzenden"
--activeert de Mail programma
tell application "Mail"
activate
--vertelt aan theMessage dat er een nieuwe email wordt verstuurt
set theMessage to make new outgoing message
--vult theMessage met andere variabelen
tell theMessageset the subject to theOnderwerpset the content to theBericht
make new to recipient at end of to recipients with properties {address:theOntvanger}
end tell
save theMessage
end tell

Dit script verstuurt gewoon je mail met de inhoud van de variabelen. Dit kan natuurlijk ook via het programma Mail maar het maakt je wel bewust hoe dit precies allemaal werkt. Je ziet wel eens in films dat als iemand een nieuw bericht krijgt de computer zegt: “You’ve got mail” Dit gaan we ook creëren door middel van Rule Action (Regels)We schrijven eerst een simpel script:

set theBericht to "Excuse me, You've got a new Mai"
say theBericht


We koppelen dit script aan een Rule Action. Een Rule Action is een sorteer mogelijkheid van alle inkomende mails in Mail. Zo kun je bepaalde voorwaarden aan een inkomende email koppelen zodat deze bijvoorbeeld in een door jouw geselecteerde folder wordt geplaatst.

  • Start Mail applicatie
  • Ga naar Preferences (Voorkeuren)
  • Ga naar tab Rules (Regels) en selecteer Add Rule (Voeg een Regel)
  • Kies zelf de voorwaarden en koppel het script aan de Regel (Rule)

Het Action Rule zal er ongeveer zo uitzien:
rule action mail apple
Je kunt natuurlijk ook een script schrijven met zoiets als:

set theBericht to "You've got a new Mail with attachment"
say theBericht


en aan een Action Rule koppelen die alle inkomende email sorteert op bijlagen. Wanneer er een email binnenkomt met een bijlage wordt je door het script op de hoogte gebracht. Handig he?

Ik hoop dat jullie ook dit hoofdstuk met plezier hebben gelezen!