Lansere din favoritt Apps i grupper med AppleScript

Launch favorittprogrammene dine i grupper med Applescript

Dette Apple veiledningen vil vise deg hvordan du setter opp grupper av apps som kan startes samtidig. Underveis vil vi lære å implementere lister, handlere, hvis uttalelser og hvordan du arbeider med resultatene av en brukers handlinger.



Hva vi bygger

Grunntanken her er at du sannsynligvis har ulike grupper av apps som du liker å ha åpent for ulike oppgaver, si for webdesign eller skriftlig. Ville det ikke være fint om du enkelt kunne åpne alle disse apps samtidig som du går inn i ulike deler av dagen din?

Vi kan gjøre dette ganske enkelt med Applescript. Algoritmen her er bare fire trinn lengre:


    Sett opp ulike app grupper

    Tillat brukeren å velge fra en liste over app grupper

    Ta et resultat av brukerens valg

    Bruk resultatet til å lansere en gruppe av apps største nettstedene verk en gruppe av programmer med ett klikk!

    Fra en brukers perspektiv, vil du se en liste over forskjellige programgrupper dukker opp på skjermen (arbeid, lek, etc.). Du vil velge den gruppen du ønsker å starte, trykke "OK", og de vil alle bli lansert for deg. Ganske kule

    Trinn 1. Sette opp grupper

    Det første vi må gjøre er å etablere våre ulike app grupper. Vi skal bruke tre forskjellige grupper for denne opplæringen: arbeid, lek og produktivitet, som hver inneholder sin egen liste over apps

    Lister i Applescript

    I Applescript, er en liste en. mye som en variabel, bare det har flere forskjellige elementer i stedet for bare én. En liste som inneholder vokalene i det engelske alfabetet ville se slik ut:

    [Applescript] satt vowelsList til {" en ", " e ", " i ", " o ", " u ", " y "} [/Applescript]

    Herfra kan vi ta tak og jobbe med individuelle listeelementer. For eksempel følgende avkastning ". E"

    [Applescript] - Returns " e " satt vowelsList til {" en ", " e ", " i ", " o ", " u ", " y "} retur punkt 2 vowelsList [/Applescript]

    Legg merke til at mange programmeringsspråk er "null indeksert" så det første elementet i en matrise eller liste er faktisk element null. Dette er ikke tilfelle med Applescript. Det første elementet i en liste er punkt en.
    Legg merke til hvordan de to språkene er indeksert annerledes
    Våre fire lister

    For det første skrittet, vi kommer til å sette opp totalt fire forskjellige lister. De tre første vil inneholde eksakte app navnene slik de vises i OS X og den siste vil inneholde de tre kategoriene som vi har delt vår app grupper inn: Work, Play og produktivitet

    [Applescript] - Set. Groupsset arbeidsgruppe til {" Mail ", " Safari ", " TextEdit "} satt play til {" Safari ", " App Store ", " iTunes "} satt productivityGroup til {" Merknader ", " påminnelser ", " Mail "} sett appGroups til {" Work ", " Spill ", " Produktivitet "} [/Applescript]

    Her setter opp første linje med kode en variabel som har en liste over programnavn: Mail, Safari og TextEdit. Jeg gjentar denne prosessen to ganger mer for de andre gruppene

    Den siste linjen med kode gjentar den samme prosessen, men denne gangen fyller liste med tre vesentlige vilkårlige gruppenavnene som jeg har gjort opp. Work, Play og produktivitet.

    Coding handler om å ta store mengder informasjon og plassere det inn i lett håndterbare konstruksjoner.

    Fordelen med dette trinnet er at vi har stappet en ton
    av informasjon inn i fire lett tilbakekalt variabler. Koding handler om å ta store mengder informasjon og plassere det inn i lett håndterbare konstruksjoner. Vi får se dette på en enda større skala i neste trinn

    . Tips: Jeg brukte alle standard apps for mine grupper, men hvis du ikke er på Mountain Lion, vil du ikke få Notes &påminnelser . Endre programmene i listen til de som du faktisk har installert.

    Trinn 2. Lag en App Launcher Handler

    Etter å ha satt opp mine variabler, jeg liker å gå videre til noen behandlere som trenger skal bygges.

    I forrige trinn, tok vi flere elementer og plassert dem i en liste for å være knyttet til en enkelt variabel. Med et behandlingsprogram gjør du noe lignende en ta en hel liste over kommandoer, handlinger etc. og knytte dem til en variabel.

    Som med funksjoner på andre språk, handlers kan settes opp til å godta en opplysning når de kalles. Denne informasjonen vil da bli "gått inn" og brukt gjennom behandleren.

    Hvilke Handlinger Merit en Handler?

    Hvordan kan vi vite hvilke handlinger som skal deklareres av seg selv og som bør være pakket inn i et behandlingsprogram? Den tommelfingerregel å leve etter, er at hvis du finner deg selv å gjenta en anselig mengde koder mer enn en gang, er det nok på tide å sette opp et behandlingsprogram.

    Hvis du finner deg selv å gjenta en anselig mengde koder mer enn gang, er det nok på tide å sette opp et behandlingsprogram.

    Senere i vår script, vil vi ha en gjentatt behov for å lansere alle apps innen en gitt liste. Dette er det perfekte stedet å gjennomføre et behandlingsprogram. Syntaksen for å sette dette opp ser slik ut:

    [Applescript] på appLauncher (selectedGroup) end appLauncher [/Applescript]

    Som du ser, er det litt som en forteller blokk, bare det begynner med ordet "på" for å indikere at det er et behandlingsprogram. Her "appLauncher" er rett og slett navnet som jeg har valgt for min handler. Som med variabler, alltid holde disse enkle og beskrivende

    Den neste delen av denne linjen vises i parentes:. (SelectedGroup). Det er der vi passerer i en variabel som deretter kan åpnes og behandles gjennom behandleren. I vårt tilfelle, når vi bruker denne behandleren senere, vil vi passere i en av våre tre app gruppelister.
    Anatomy of a Handler
    The Full Handler

    Nå som vi har et skall som definerer grensene for føreren, kan vi fylle det med kommandoer

    [Applescript] -. Appvelger Handleron appLauncher (selectedGroup) gjenta med jeg fra en til (antall elementer i selectedGroup) forteller programmet (element jeg av selectedGroup) aktivere slutten fortelle slutten repeatend appLauncher [/Applescript]

    Først setter jeg opp en gjentakelse som går gjennom hvert element i hva liste vi passere i, så jeg bruker hver av disse elementene som en variabel for tjene som app navn i en fortelle blokk. Til slutt, en enkel "aktivere" -kommandoen lanserer apps i listen.

    Trinn 3. Present listen til bruker:

    Nå som vi har våre variabler deklareres og vår handler satt opp, er det på tide å begynne å kommunisere med brukeren. Det vi er ute etter å gjøre er å opprette et dialogvindu som inneholder en liste over alternativer.

    Dette høres ut som det blir mye arbeid, men i virkeligheten er det super enkelt. Vi har allerede satt opp vår appGroups liste, nå trenger vi bare en kort linje med kode for å fortelle Applescript for å presentere listen

    [Applescript] -. La brukeren velge en groupset theSelection å velge fra listen appGroups med tittelen " Hvilke app gruppe "? [/Applescript]

    Her har jeg brukt "velge fra liste" -kommandoen til å få opp en standard innebygd dialog og brukt "title" for å tildele noen tekst på øverst i dialogboksen.
    Velg fra liste Dialog
    Får Resultat

    Legg merke til at vi ikke bare fortelle Applescript for å gi brukeren en liste. Vi har faktisk satt hele prosessen opp som en variabel med "set" -kommandoen.

    Dette er en kort og konsis måte å skape en dialog og få resultatet alt i ett enkelt trinn. Dialogen vil dukke opp, vil brukeren velge en app gruppe, og resultatet vil bli tildelt "theSelection" som en variabel.

    Trinn 4. konto for Avbryter

    Nå kommer den vanskelige del. Brukeren har sett og interaksjon med dialogen, og vi må behandle resultatet. For å gjøre dette, vi har bokstavelig talt å vurdere alle mulige scenario, og står for det. Aldri anta at brukerne vil være logisk eller kompetent. I stedet antar at de vil ta alle mulige ruten, spesielt de som er sannsynlig å forårsake en feil.

    Aldri anta at brukerne vil være logisk eller kompetent.

    Hva gjør en Avbryt ligne ?

    Det første scenariet som jeg ønsker å ta hensyn til er en kansellering. Vinduet dukker opp, brukeren endrer hans /hennes sinn, og presser avbryte ... hva nå?

    I et tidligere trinn, kastet vi resultatet av vinduet inn theSelection. Hvis brukeren avbryter, vil verdien av denne variabelen settes til "false". Denne kunnskapen gjør scenario lett å håndtere med en hvis setningen:

    [Applescript] - Hvis bruker Cancelsif theSelection er falsk så feilnummeret -128end hvis [/Applescript]

    Så hva er dette < em> feilnummer -128
    bedrift? Applescript har en hel liste av mulige feil, som hver er tildelt et unikt nummer. Det bare så skjer at "bruker avbrutt" er -128.

    Alt vi gjør her er rapportering hva som skjedde, slik at hvis du har sett på resultatene av vår script i Script Editor, vil du se at brukeren avbrutt operasjonen. Som denne handlingen skjer, avslutter manus og forsvinner fra brukerens syn, som er akkurat det vi ønsker i dette tilfellet, så dette er så langt vi vil gå her.

    Trinn 5. Bestem hvilken gruppe var Valgte

    Nå kommer den store finish. Hvis brukeren ikke avbryte operasjonen, så han /hun må ha valgt en av våre tre grupper. Vår jobb er å finne ut hvilke og handle deretter.

    Fikse vår Variabel

    Før vi lanserer i disse tre scenariene, må vi behandle våre variable litt. Når brukeren velger et element og treffer "ok", vi faktisk tildele en liste for å theSelection (den bare har ett element, men det er en liste likevel).

    For å fikse dette, rett og slett overstyre variabelen som følger

    [Applescript] -. Hvis Bruker Cancelsif theSelection er falsk så feil nummer -128else satt theSelection til punkt 1 i theSelectionend hvis [/Applescript]

    Dette virker litt rart, men hvis du ikke gjør det, vil skriptet kaste en feil, så pass på å ikke hoppe over dette trinnet!

    Hvis brukeren velger den Work Group

    Nå som vi har gjort det litt husarbeid, kan vi fortsette å sammenligne brukeren resultat med de ulike mulighetene. Det første alternativet er at brukeren valgte app gruppen "Work".

    I dette tilfellet bør variabelen "theSelection" være lik det første elementet i vår "appGroups" -listen (de vil begge holde en verdien av "Work"). La oss sette opp en annen hvis setningen å teste sannheten av likestilling

    [Applescript] -. Hvis Bruker Cancelsif theSelection er falsk så feil nummer -128else satt theSelection til punkt 1 i theSelection

    - -Hvis utvalget er arbeidsgruppe hvis theSelection = (punkt 1 i appGroups) så appLauncher (arbeidsgruppe) end IfEnd hvis [/Applescript]

    Som du kan se, hvis setningen beviser sant, så vi kommer til å kjøre vår handler fra før med "Workgroup" vedtatt i som den listen som vi ønsker å jobbe med.

    På dette punktet, vår behandleren vil telle antall elementer i arbeidsgruppen, og deretter gjenta en forteller blokk med en "aktivere "kommando for hvert av disse elementene. Dette vil føre til Mail, Safari og TextEdit til å lansere en vellykket og scriptet vil opphøre.
    Hvordan vår hvis setningen er strukturert for å arbeide med behandleren.
    behandling opp

    Ved hjelp av de samme trinnene, kan vi gjøre ferdig vår script ved å legge inn to "else if" uttalelser som sammenligner theSelection til de to andre elementene i appGroups og lansere vår handler med riktig liste som en inngang.

    I hvert tilfelle føreren vil gå gjennom og lansere apps fra den valgte gruppen

    [Applescript] -. Hvis Bruker Cancelsif theSelection er falsk så feil nummer -128else satt theSelection til punkt 1 i theSelection

    - Hvis valget er ARBEIDSGRUPPE hvis theSelection = (punkt 1 i appGroups) så appLauncher (arbeidsgruppe)

    - Hvis valget er play annet hvis theSelection = (punkt 2 appGroups) så appLauncher (play)

    - Hvis Utvalget er productivityGroup annet hvis theSelection = (punkt 3 i appGroups) så appLauncher (productivityGroup) ellers retur slutten IfEnd hvis [/Applescript]

    Advanced User Tips: Dette er mye hvis uttalelser å stappe sammen. Kan du skrive denne koden ved hjelp av en gjentakelse uttalelse ligner på det vi brukte i begynnelsen?

    Sette alt sammen

    Forhåpentligvis gikk vi gjennom det sakte nok til at du fullt ut forstår hver brikke av skriptet. Her er en titt på den fullstendige manus i ett skudd:

    [Applescript] - Set Groupsset arbeidsgruppe til {" Mail ", " Safari ", " TextEdit "} satt play til {" Safari " " App Store ", " iTunes "} satt productivityGroup til {" Merknader ", " påminnelser ", " Mail "} sett appGroups til {" Work ", " Spill ", " Produktivitet "}

    - App Launcher Handleron appLauncher (selectedGroup) gjenta med jeg fra en til (antall elementer i selectedGroup) forteller programmet (element jeg av selectedGroup) aktivere slutten fortelle slutten repeatend appLauncher

    - La brukeren velge en groupset theSelection å velge fra listen appGroups med tittelen " Hvilke app gruppe "?

    - Hvis User Cancelsif theSelection er falsk så feil nummer -128else satt theSelection til punkt 1 i theSelection

    - Hvis valget er arbeidsgruppe hvis theSelection = (punkt 1 i appGroups) så appLauncher (arbeidsgruppe)

    - Hvis valget er play annet hvis theSelection = (punkt 2 appGroups) så appLauncher (play )

    - Hvis valget er productivityGroup annet hvis theSelection = (punkt 3 i appGroups) så appLauncher (productivityGroup) ellers retur slutten IfEnd hvis [/Applescript]

    Nå som du har full script , lagre det ut som en søknad, gi det en fancy ikon og kaste den i dokken din.

    Skriv din egen!

    Hvis du klarer fulgt gjennom denne opplæringen og forstå alle trinnene, Gratulerer! Du er definitivt en mer enn kompetent AppleScripter og det er på tide å grenen ut på egen hånd og lage noen fantastiske skript.

    Legg igjen en kommentar nedenfor og fortell meg om skript som du har bygget for din Mac. Også, hvis du har noen andre ideer til scripts at jeg skulle dekke, gi meg beskjed. Anmeldelser