Applescript para iniciantes. Introdução do MAC OS X ao AppleScript

Lar / Não liga

AppleScript é uma linguagem de programação poderosa que remonta ao Mac OS 7. No entanto, apesar de sua maturidade, programadores experientes de Mac frequentemente criticam o AppleScript por ser muito simples, muito fácil de aprender e muito semelhante ao inglês normal.

É claro que você gostaria que uma linguagem de computador tivesse essas mesmas qualidades – se, é claro, você quisesse uma linguagem de computador. AppleScript é a linguagem de programação mais simples com a qual você pode automatizar seu Mac, mesmo se você for um usuário simples e não um cientista da computação certificado.

Os programas AppleScript (chamados de scripts ou scripts) podem ser considerados robôs de software. Um simples AppleScript pode realizar algumas tarefas cotidianas, como criar cópia de segurança Pastas de documentos. Um script mais complexo pode abranger várias páginas. Nas editoras profissionais, onde os AppleScripts são mais populares, o script pode se conectar pela Internet ao disco rígido do fotógrafo, recuperar a foto de uma pasta específica, realizar correção de cores no Photoshop, colar o resultado em um documento de layout especificado, imprimir um esboço layout, envie uma notificação por e-mail ao editor - e tudo isso é feito automaticamente.

Mesmo sem saber, o usuário usa constantemente a tecnologia AppleScript subjacente. Vários componentes do Mac se comunicam nos bastidores usando Apple Events, que são mensagens que passam instruções ou dados de programa para programa. Se você usar o comando Mostrar Original em um alias ou o comando Obter Informações em um arquivo ou pasta, o Evento Apple informará ao Finder como responder.

O AppleScript é superior ao Automator em vários aspectos, entre eles seu poder. E mais uma coisa: AppleScript é um tópico tão profundo que deveria ser dedicado a um livro separado. Este capítulo é apenas um aperitivo saboroso: um livro como AppleScript: The Essential Guide seria uma refeição de sete pratos.

Conselho Você pode baixar um capítulo inteiro sobre AppleScript — que apareceu em uma edição anterior deste livro — na página Missing CD em www.missingmanuals.com.

Você não precisa criar AppleScript para aproveitar os benefícios desta tecnologia. O Mac OS X vem com dezenas de scripts prontos que são realmente úteis, e para executar qualquer um deles basta selecionar seu nome no menu. Esta “reprodução” de um AppleScript requer tanta habilidade técnica quanto apertar um botão em um elevador.

Você pode experimentar alguns desses cenários iniciais interessantes adicionando um menu de cenário à barra de menu (Figura 7.16, à direita).

O menu de cenários conta com 16 categorias prontas, combinando cerca de 100 cenários; para executar um script, basta selecionar seu nome. Aqui está uma lista dos cenários mais úteis e interessantes.

Conselho Se você pressionar a tecla Shift enquanto seleciona um nome de script no menu, o Mac OS X o levará diretamente para onde esse script está localizado no Finder (por exemplo, a pasta Home>Biblioteca>Scripts). Além disso, se você pressionar a tecla Opção ao selecionar um nome, o script será aberto no Editor de Scripts, onde você poderá examiná-lo ou editá-lo.

Este submenu contém apenas o script Importar endereços, projetado para copiar nomes e endereços do Entourage, Outlook Express, Palm Desktop, Eudora, Claris Emailer ou Netscape para o programa Catálogo de endereços. Se você tem muitos amigos, use este script para não precisar digitar novamente todos os nomes, números de telefone e endereços de correspondência. (A subpasta Address Importers que acompanha oferece scripts para importação de três programas específicos.)

O submenu Básico contém três pequenos scripts úteis relacionados ao AppleScript: AppleScript Help (abre o Help Viewer e procura a palavra AppleScript); Site AppleScript (abre a página AppleScript em seu navegador); Abra o Editor de Scripts (abre o programa Editor de Scripts, projetado para ler e editar scripts AppleScript).

Esta pasta contém um grupo de scripts de droplet ColorSync (executados quando você arrasta algo para seu ícone) que são de interesse de artistas, designers de sites, editores e similares.

Em alguns casos, ao selecionar um script neste menu, você verá uma breve mensagem informativa e, em seguida, uma caixa de diálogo Abrir para selecionar arquivo gráfico a ser processado.

Outros agem imediatamente; por exemplo, o script do monitor Mimic PC ajusta as cores da tela para corresponder aos tons ligeiramente diferentes em um monitor de computador Windows. Isto é muito conveniente se você estiver trabalhando em

CURSOS PARA USUÁRIOS EXPERIENTES
Segredos do menu de script
O menu Scripts exibe o conteúdo de duas pastas Scripts diferentes: uma é Home>Biblioteca>Scripts e a outra está na pasta principal Biblioteca. Os scripts retirados da sua pasta pessoal são separados por uma linha pontilhada no menu de scripts.

Esses scripts não podem apenas ser executados. Também são ideais para abri-los no Editor de Scripts (basta clicar duas vezes) e analisar linha por linha como funcionam. Depois de entender a sintaxe, você pode copiar fragmentos de código e, após alterá-los, utilizá-los em seus scripts. (O Editor de Scripts é um programa encontrado na pasta Aplicativos > AppleScript que você pode usar para criar seus próprios scripts.)

Uma fotografia ou uma página da web e quero saber como será a aparência para as massas não esclarecidas. (Para restaurar as cores originais, vá para a guia Cor do controle remoto da tela na janela Preferências do Sistema.)

Todos esses cenários estão relacionados ao trabalho no Finder - digamos, manipulação de arquivos e janelas. Aqui estão os mais úteis deles:

Adicionar aos nomes dos arquivos, Adicionar aos nomes das pastas. Esses scripts anexam um prefixo ou sufixo ao nome de cada arquivo ou pasta na janela frontal (ativa) do Finder (ou, se não houver janelas abertas, na área de trabalho). Usando esses scripts, você pode adicionar a palavra “rascunho” ou “final” ou “antigo” aos nomes de todos os arquivos em uma pasta.

Substituir texto em nomes de itens permite realizar uma pesquisa de substituição em nomes de arquivos, pastas ou ambos. Se uma editora rejeitar sua proposta de livro de 45 capítulos, você poderá usar este script para renomear todos os 45 capítulos de modo que o que era "Uma História de Mousepads - Proposta para Random House, Capítulo 1" se torne "Uma História de Mousepads - Proposta para Simon" & Schuster, capítulo 1."

Aparar nomes de arquivos, Aparar nomes de pastas. Se você cometeu um erro ao executar o script Adicionar aos nomes de arquivos, você sempre pode corrigi-lo usando Trim File Names. Este script remove extensões de arquivo, sufixos ou prefixos de escolha do usuário.

Digamos que você acabou de criar várias pastas novas de uma só vez. O Mac OS X nomeia essas pastas como "pasta sem título", "pasta sem título 2" etc. Mas e se você se sentir mais confortável com os nomes "pasta 1", "pasta 2" etc.? Execute o script Cortar nomes de pastas; Na caixa de diálogo, digite sem título e clique em OK.

É improvável que você use ativamente scripts de ações de pasta, pois exatamente o mesmo acesso às operações em pastas é fornecido clicando com a tecla Control pressionada em uma pasta (ou dentro de sua janela)

Esses scripts demonstram como você pode automatizar algumas tarefas relacionadas a fontes.

FontSync é a nobre tentativa da Apple de resolver um antigo problema de editoração eletrônica. Você terminou de criar um lindo boletim informativo e está levando-o à gráfica local para imprimi-lo em equipamento de alta qualidade, apenas para descobrir que terá que jogar fora as impressões e começar de novo - apenas para descobrir que as fontes não funcionam. não tenha a aparência que você queria. A gráfica não tinha exatamente as mesmas fontes que você usou para preparar o documento. Ou, pior ainda, as fontes tinham exatamente os mesmos nomes, mas foram criadas por uma empresa diferente e, portanto, diferiam ligeiramente da sua em alguns parâmetros.

A ideia por trás do FontSync é notificar o usuário com antecedência sobre possíveis inconsistências. O script Criar perfil FontSync cria um arquivo de perfil FontSync em alguns minutos. Este documento contém uma quantidade impressionante de informações sobre o design, o fluxo e os detalhes de todas as fontes instaladas no sistema. Em uma gráfica, esse documento pode ser processado usando o script Match FontSync Profile adicional. Ele identificará meticulosamente as diferenças entre as fontes do Mac do usuário e as impressoras.

É claro que esta tecnologia pressupõe implicitamente muito: que a gráfica tenha computadores Macintosh instalados, que eles possam lidar com o FontSync e também que o usuário não se esqueça de primeiro criar e transferir um perfil FontSync para a gráfica.

O IChat passou por uma reformulação significativa na versão 10.5 - a Apple adicionou muitos recursos interessantes (embora às vezes inúteis). Também se tornou possível executar AppleScripts como sinais quando ocorre um evento relacionado aos seus contatos. Por exemplo, você pode aceitar automaticamente convites de bate-papo de contatos individuais ou até mesmo respondê-los com uma saudação pré-preparada. Você pode até controlar a reprodução de música em um Mac digitando comandos na janela do iChat de outro Mac em sua casa. Detalhes no Capítulo 21.

O benefício desses dois cenários é pequeno. Data e hora atuais exibe a data e hora atuais em uma caixa de diálogo equipada com um botão da área de transferência para copiar informações, prontas para colar. Font Sampler exibe uma página listando as fontes (cujos nomes estão escritos no script) que são instaladas com o Mac OS X. (O script se tornou menos útil desde que o Font Book adicionou comandos de impressão integrados semelhantes.)

Dois cenários deste menu merecem menção especial. A temperatura atual por código postal mostra qual é a temperatura fora da janela em Fahrenheit e Celsius. Esse é outro motivo para não sair de casa o dia todo.

Cotação de Ações recebe cotações de ações da empresa selecionada com atraso de 20 minutos. Não é tão bom quanto obter cotações em tempo real, mas é grátis.

A maioria dos scripts deste submenu resolve algum problema específico, como contar letras em seus e-mails. caixas de correio ou configurando um novo conta. O mais engraçado de tudo, claro, é o cenário Crazy Message Text (Fig. 7.17).

Os scripts nesta pasta permitem que você acesse pastas especiais do Finder – diretamente do menu, de qualquer programa. Se a pasta que você deseja abrir não tiver seu próprio script atribuído, selecione-a na lista do script Abrir pasta especial.

Conselho Para aqueles que não se importam em ter que editar este script usando o Editor de Script, você pode modificá-lo para permitir selecionar e abrir mais de uma pasta por vez (através, digamos, de -clique). Basta digitar o texto múltiplas seleções permitidas verdadeiras imediatamente após as palavras Escolha a pasta para abrir: (no final da linha, localizado aproximadamente no início do segundo terço do script). Não se esqueça de salvar suas alterações.

Esses scripts foram projetados para demonstrar o poder do AppleScript para impressão e criação de documentos PostScript e PDF.

Um deles, Print Window, preenche uma lacuna antiga no Mac OS X. Ele deve imprimir uma lista de texto do conteúdo de qualquer pasta selecionada. (É um pouco complicado, no entanto.)

De acordo com a equipe Sobre esses scripts, esses 48 scripts pré-construídos ajudam você a escrever scripts mais rápidos e precisos porque os trechos de código estão livres de erros de digitação e sintaxe. À medida que você melhora, você pode adicionar seus próprios scripts aqui, com trechos de código adaptados aos scripts que você normalmente escreve para tornar seu trabalho ainda mais eficiente. (Ao criar um script no Editor de scripts, você insere esses trechos de código no texto usando Control-clique e seleção de menu acesso rápido.)

Na maior parte, os scripts fazem seu trabalho silenciosamente e despercebidos. Mas se você deseja automatizar um programa que não entende comandos normais do AppleScript, os scripts podem “controlá-lo” manualmente, simulando seleções de menu, pressionamentos de botões e assim por diante.

Observação Esse recurso, chamado script de interface do usuário (UI), só terá efeito depois que você abrir o console do Universal Access nas Preferências do Sistema e marcar a caixa de seleção Habilitar acesso para dispositivos auxiliares.

Não faz sentido executar os scripts do submenu UI Element Scripts como estão: eles são apenas exemplos para demonstrar a sintaxe correta.

Este conjunto mais recente de scripts fornece acesso rápido a alguns sites populares. Uma exceção é o script Download Weather Map, que baixa o mapa meteorológico atual do território continental dos Estados Unidos, salva-o na área de trabalho como weathermap.jpg e, em seguida, abre-o na Visualização.

Conselho Você pode adicionar scripts, arquivos e até endereços da Internet ao menu e iniciá-los facilmente na barra de menu. Qualquer coisa que você arrastar para a pasta Biblioteca> Scripts aparecerá automaticamente no menu de scripts.

Por outro lado, se você começar a adicionar muitos de seus próprios itens ao menu Script, será mais conveniente remover as amostras da Apple dele. Sem problemas. Abra o utilitário AppleScript e desmarque Mostrar scripts do computador.

Trabalhando com roteiros prontos AppleScript

Ao trabalhar no menu de scripts, você logo perceberá que possui dezenas de scripts integrados gratuitos em seu Mac. O melhor é que você pode descobrir como eles funcionam e até mesmo alterá-los à medida que aprende gradualmente a escrever seus próprios AppleScripts. Você pode até copiar e usar seções inteiras de scripts da Apple em seus próprios scripts.

Primeiro, é claro, você precisa abrir o script. A maneira mais fácil de fazer isso é abrir o menu de scripts, selecionar a categoria desejada e clicar com a tecla Option pressionada no nome do script desejado.

Você pode começar a aprender AppleScript observando um script simples. Abra, por exemplo, o script Nova Janela de Aplicação (na categoria Scripts de Navegação) clicando em seu nome enquanto pressiona Chave de opção. Como resultado, o Script Editor abrirá o arquivo em uma nova janela (Fig. 7.18).

Veja como esse script funciona:

Informe ao aplicativo "Finder" informa ao Mac OS X qual programa deve executar os seguintes comandos.

Ativar traz o Finder para o primeiro plano – como se você tivesse clicado em seu ícone no Dock.

Abrir pasta "Aplicativos" do disco de inicialização informa ao Finder para abrir uma nova janela exibindo a pasta Aplicativos do disco rígido principal.

End Tell diz ao Finder para cuidar de seus negócios e ignorar quaisquer outros comandos do seu script.

Para testar o script, clique no botão Executar ou pressione -R.

Conselho Você pode editar este script para melhor atender às suas necessidades. Experimente, por exemplo, substituir “Aplicativos” por “Usuários” para que o script abra a pasta Usuários.

Criando seus próprios AppleScripts

O Mac OS X vem com dezenas de programas – muitos deles! Ok, está faltando alguma coisa – um metrônomo, por exemplo. Como você vai tocar piano em um ritmo constante sem ouvir os cliques rítmicos do seu Mac? É claro que, em caso de emergência, um metrônomo GarageBand ajudará, mas isso é atirar em pardais com um canhão.

Você pode usar AppleScript. Abra um novo documento no Editor de Scripts (Arquivo>Novo ou -N) e digite o seguinte:

caixa de diálogo de exibição "Bem-vindo ao metrônomo AppleScript"

defina bpm para o texto retornado de (diálogo de exibição ¬

"Quantas batidas por minuto?" resposta padrão 60)

definir pauseBetweenBeeps como (60/bpm)

atraso pausaBetweenBeeps

Observação Não há necessidade de imprimir o símbolo ¬. Então os programadores dizem: “Isso deveria estar em uma linha, mas não há largura de página suficiente”.

Ao executar esse script, uma caixa de diálogo aparece perguntando quantas batidas por minuto você deseja que o metrônomo conte. O número inserido (por exemplo, 120) é armazenado em uma variável de armazenamento temporário no script chamada bpm.

O script então calcula a quantidade de pausa entre os bipes e registra essa fração de segundo na variável pauseBetweenBeeps. Se você dissesse ao script o que publicar bip, por exemplo, 120 vezes por minuto, então o valor 0,5 será escrito em pauseBetweenBeeps, pois deve haver uma pausa igual a meio segundo entre as amostras.

Finalmente, o script cria um loop infinito: sinaliza, pausa por um período especificado e depois repete.

Clique no botão Executar para testar seu script e, quando ouvir sons suficientes, clique no botão Parar.

MINHAS TÉCNICAS FAVORITAS
Anexos de desktop com um clique
Aqui pequeno truque com o Automator, que pode salvar a vida de quem precisa enviar documentos com frequência por e-mail. (Ele modela o comando Enviar para, muito conveniente, encontrado no menu de atalho das máquinas Windows.)

Crie um processo no Automator com apenas duas etapas: Obter itens selecionados do Finder (na categoria Finder) e Nova mensagem de correio (na categoria Correio).

Se você sempre envia arquivos para o mesmo destinatário – seu chefe, por exemplo – você pode até pré-definir o endereço no painel de processos do Automator. Se o assunto e o texto da mensagem forem repetidos todas as vezes, você também poderá defini-los antecipadamente.

Agora selecione Arquivo>Salvar como plug-in. Nomeie o processo como Email This ou o que você quiser.

A partir de agora, você pode enviar um documento do Finder clicando nele com a tecla Control pressionada e escolhendo Automator> Enviar por e-mail no menu que aparece.

Vitória! O Mac OS X inicia o Mail e cria uma mensagem de saída com um arquivo anexado.

Dica grátis: Se você inserir outra ação Criar Arquivo (da categoria Finder) entre essas duas ações, seu comando de menu também compactará o arquivo (ou pasta) em um arquivo .zip antes de enviá-lo por correio!

Conselho Será ainda mais legal se você verificar Preferências do Sistema> Acesso Universal> Audição> Piscar a tela quando ocorrer um som de alerta nas configurações do sistema. Agora, quando o seu script for executado, a tela piscará junto com o som. Se estiver gravando música, silencie seu Mac: você terá um metrônomo visual, mas nenhum sinal de áudio.

Comparação de AppleScript e Automator

Existem centenas de usos para o AppleScript - automatizando processos que são muito complexos para o Automator, controlando programas que o Automator não pode ver e programando coisas como loop de comandos que o Automator não pode fazer.

Se você considerar o AppleScript apenas como um substituto do Automator, estará perdendo muito poder. Na verdade, o AppleScript oferece recursos que o Automator provavelmente não terá em 10 anos: é uma ferramenta muito mais avançada.

O Automator é bom para tarefas simples. Se você precisa do AppleScript para automatizar o seu Mac, não se desespere. Você realmente assume isso ferramenta poderosa. (Você pode até combiná-los e incorporar AppleScripts em processos do Automator usando a ação Executar AppleScript.)

Boa sorte com a automação!

Ainda não usa AppleScript? Não sabe o que é? Você acha que isso não tem utilidade para você? Ou, talvez, a memória das aulas de informática na escola faça com que você tenha um ataque de alergia à simples menção da palavra “programa”? Isso significa que você fez a coisa certa ao abrir este artigo.

Espero que isso ajude você a entender essa ferramenta muito útil e que o tempo gasto na leitura seja recompensado muito mais tarde.

Muitas vezes, ao trabalhar com um determinado programa, temos que realizar as mesmas ações várias vezes: pressionar as mesmas teclas, selecionar o mesmo comando no menu, inserir os mesmos valores em caixas de diálogo& É aqui que entra o AppleScript. Descrevemos a sequência de nossas operações em forma de programa “script”, iniciamos e tomamos café com calma, olhando de vez em quando para ver se o processamento do último, três mil setecentos e oitenta e nove arquivo foi concluído. Algo semelhante existe na forma de arquivos DOS BAT ou scripts de shell UNIX. Mas o AppleScript tem uma vantagem importante: a linguagem é “compreendida” tanto pelo Finder quanto por um grande número de programas aplicativos, e o script pode acessá-los um por um.

A linguagem que usaremos (também chamada AppleScript) é muito próxima da linguagem normal língua Inglesa. Por exemplo, o script pode ser assim:

dizer aplicativo "Localizador"
fazer
fim diga

Acho que todos entenderam o que ele faria. Mas para aprender a escrever seus próprios roteiros, você terá que entender alguns conceitos.

Objetos, propriedades, eventos...

AppleScript é uma linguagem orientada a objetos. Ou seja, tudo o que “existe” no seu computador, ele considera objetos(objetos). Um objeto pode consistir em outros objetos, ser incluído em outro objeto ou estar relacionado a outro objeto. Por exemplo, Finder é um objeto. Possui objetos “subordinados” - pastas, arquivos, janelas. O editor Tex-Edit possui um objeto de texto, composto por palavras, linhas, parágrafos, etc. Saber como os objetos estão relacionados (sua hierarquia) é muito importante, pois o comando é transmitido “ao longo da cadeia”. Funciona uma espécie de “vertical de poder”: damos ordens ao Finder, ele dá ordens à pasta, dá ordens à pasta aninhada nele, e assim por diante, até chegar o arquivo desejado. E o “relatório de execução” seguirá novamente a mesma cadeia – na direção oposta.

Objetos do mesmo tipo (por exemplo, todas as pastas) formam Aula(aula). Cada objeto possui um determinado conjunto propriedades(propriedades) que o distingue de outro. Por exemplo, cada arquivo possui nome, rótulo, tipo, data de criação, versão e mais de uma dúzia de características. O script pode alterar alguns deles, alguns só podem ser lidos.

Uma aula (chamada "descendente") pode herdar propriedades de outra classe ( "antepassado"). Por exemplo, pastas e arquivos têm um ancestral comum - um elemento (item).

Agora vejamos nosso exemplo, expandindo-o um pouco:

- qualquer texto escrito após os “dois menos”,
— considerado um comentário;
- o computador não presta atenção nisso
dizer aplicativo "Localizador"
- a palavra diga inicia um grupo de comandos,
- relacionado a um objeto
fazer nova pasta na área de trabalho com propriedades (nome:"Mine!", índice de rótulo:2)
fim diga - e é assim que termina o grupo de comandos
dizer aplicativo "Localizador" contar item "Meu!"
abrir
definir seu nome para"Só para mim"
fim diga

Primeiro dizemos ao Finder para criar novo objeto classe "pasta" localizada na Tabela. Algumas propriedades são especificadas no comando (nome da pasta e seu rótulo colorido), o restante será atribuído pelo computador por padrão. Em seguida, dizemos ao Finder para comandar sua pasta (desta e somente desta forma: “o vassalo do meu vassalo não é meu vassalo”) para abrir e alterar o nome.

Mas é hora de passar do raciocínio teórico para algo mais tangível. É hora de iniciar o Editor de Script.

Editor de roteiro

Vários programas foram criados para funcionar com AppleScript, incluindo ferramentas de desenvolvimento muito avançadas. Você provavelmente acabará possuindo um desses mais tarde. Mas para um primeiro contato, o editor que acompanha o Mac OS será suficiente para nós.

A janela do Editor de Scripts está dividida em duas partes: o comentário está escrito na parte superior (é exibido na tela antes da execução do script) e o programa está na parte inferior. Vamos tentar digitar nosso exemplo (é claro, você pode ficar sem meus comentários). Em seguida, clique no botão “Verificar sintaxe”. Caso você tenha cometido algum erro, uma janela explicativa aparecerá. Mas, muito provavelmente, tudo ficará bem - e após uma breve pausa o texto mudará um pouco de aparência. A fonte que será usada para destacar os diferentes elementos do script pode ser configurada usando o comando “Formatação AppleScript” no menu “Editar”. Agora você pode clicar no botão “Executar”. Funcionou?

O script escrito pode ser salvo de diferentes maneiras: ou fonte(Texto), ou já script compilado(Script Compilado) - pronto para ser executado por um editor de script ou algum outro programa, finalmente - na forma de um independente (nota de rodapé: claro, não exatamente - sem o AppleScript instalado ele não fará nada) programa de miniaplicativo(Aplicativo). Você pode fazer um script “somente execução” (somente execução). Apenas lembre-se, neste caso, de economizar - para você - e arquivo original. Caso contrário, não apenas os concorrentes ansiosos por violar seus direitos autorais, mas também você mesmo não conseguirá acessar o texto fonte.

Dicionários, dicionários, dicionários...

“Bem, ok”, você provavelmente está pensando, “o editor é tão fácil de usar, leia roteiros prontos- também não é difícil. Mas como escrevê-los? Onde conseguimos todas essas classes, comandos, propriedades?” A resposta é simples: você precisa olhar dicionário. Cada programa que suporta trabalhar com AppleScript, bem como ScriptingAddition (falaremos sobre “adições” mais tarde) contém breve descrição todos os seus objetos e comandos reconhecidos. Você pode visualizar este dicionário diretamente do editor de script - selecionando “Abrir Dicionário” no menu “Arquivo” ou arrastando o programa desejado para a foto do editor.

Os programas Macintosh podem suportar AppleScript em três níveis diferentes.
Programável- o programa pode executar comandos descritos na forma de um script.
Gravável- é possível gravar comandos executados no programa. Vamos criar um novo script, iniciar a gravação (através do botão “Gravar”), realizar, por exemplo, as ações necessárias manualmente no Finder e interromper a gravação (“Parar”). É isso. Isso torna muito conveniente a criação de modelos de script.
Anexável- o script pode ser executado diretamente do programa, sendo “anexado” a um menu ou a qualquer objeto da janela. Exemplos de tais programas: AppleWorks, Tex-Edit, FileMaker Pro.

Vamos abrir, por exemplo, o dicionário do Finder.

À esquerda você vê uma lista de todos os “termos” definidos no programa. Atenção: alguns deles estão em itálico. Estes são objetos. Todos os outros são equipes. Ao clicar na palavra desejada, você pode ler um breve resumo.

O que, por exemplo, você pode descobrir sobre “Container”? Primeiro, vemos: “Contêiner de classe: um item que contém outros itens”. Ou seja, é um elemento que contém outros elementos. E se você olhar as descrições das próximas classes, ficará claro que “contêiner” é um conceito que inclui discos, pastas, Área de Trabalho e Lixeira. Ele tem as propriedades comuns desses objetos bastante semelhantes. E na “árvore genealógica” - a hierarquia de classes - ele é o ancestral deles.

Continue lendo. “Forma plural: recipientes”. Forma plural? Estamos estudando gramática inglesa? Sim e não. Já mencionei que o AppleScript é o mais próximo possível da linguagem natural. E se quisermos processar todos os objetos de uma determinada classe, então podemos escrever isso, como deveria ser em inglês, ou “every container” ou “containers”.

Como você já sabe, um objeto pode conter outros objetos. Quais e como eles diferem entre si são descritos na próxima seção do dicionário - “Elementos”. Um contêiner, como você pode ver, pode conter objetos de uma dúzia e meia de classes diferentes, por exemplo, outros contêineres, pastas, arquivos de documentos e programas, etc. E você pode indicar um elemento específico de uma classe por nome (por nome) ou por número de série (por índice numérico).

E por fim, a última seção é “Propriedades”. Aqui vemos, em primeiro lugar, que a classe “Container” é descendente da classe “Element” ( item ), ou seja, possui todas as suas propriedades. Mas esta classe também tem várias próprias. Observação: alguns deles estão marcados com “” (somente leitura), essas propriedades não podem ser alteradas usando o comando AppleScript.

Agora vamos ver como os comandos são descritos no dicionário. Por exemplo, vamos pegar o script “Make” com o qual você já está familiarizado a partir de exemplos de scripts. No topo da página está o objetivo do comando (criar um novo elemento). Então - como está escrito (sintaxe) e quais parâmetros possui. Observe que alguns parâmetros estão entre colchetes. Isso é o que eles querem dizer no dicionário opcional parâmetros. Ao compor um script, podemos prescindir deles, mas se os usarmos, não precisamos colocar parênteses. Completa a ajuda de um comando indicando-o resultado(Resultado). No nosso exemplo, será uma “referência” ao objeto criado.

Aqui você vai. Você já pode tentar escrever um script simples. Então…

Ó criador!

Acho que você sabe que todo arquivo em um Macintosh tem duas características - um tipo e um código de criador, que permitem ao Finder decidir como lidar com esse arquivo. Também não é segredo que muitas vezes - por exemplo, após transmissão pela Internet - esses atributos são perdidos. Claro, existem muitos programas que podem alterá-los. Mas vamos tentar fazer nosso próprio utilitário, usando apenas o que já vem incluso no Mac OS.

Vamos começar com a opção mais simples. Suponha que precisamos atribuir ao arquivo letter.txt, localizado na Mesa, o tipo “TEXT” e o código criador “ttxt” (SimpleText).

Selecione o objeto de arquivo no dicionário do Finder. Encontramos as propriedades que precisamos: tipo de arquivo e tipo de criador. Para alterar o valor de uma determinada propriedade, utilize o comando “setraquo; (instalar). Portanto, todo o script deve ser parecido com isto:

dizer aplicativo "Localizador" contar arquivo "letra.txt"
definir seu tipo de arquivo para"TEXTO"
definir seu tipo de criador para"ttxt"
fim diga

Ou assim:

dizer aplicativo "Localizador"
definir tipo de arquivo de arquivo "letra.txt" para"TEXTO"
definir tipo de criador de arquivo "letra.txt" para"ttxt"
fim diga

Assim, como você pode ver, você pode dizer ao arquivo para alterar suas (suas) propriedades (neste exemplo, a palavra “its” pode ser omitida, pois a finalidade do comando está claramente definida sem ela), ou o Finder o programa pode alterar as propriedades do objeto subordinado.

Não foi à toa que estabeleci a condição de que o arquivo estivesse na área de trabalho. Caso contrário, precisávamos de uma “cadeia” mais longa de objetos subordinados (algo como “diga ao aplicativo “Finder” para dizer ao disco “Macintosh HD” para dizer à pasta “lição” para dizer ao arquivo “letra.txt””). Ou - para a segunda versão do roteiro - uma indicação caminho completo: “arquivo “Macintosh HD:lesson:letter.txt”” (Lembre-se: o caminho no Mac OS é escrito com dois pontos).

Bem, o roteiro está escrito. Funciona. Mas, francamente, não há benefício nisso - afinal, para cada arquivo subsequente você precisa alterar o texto do próprio script. Nossa, facilitou o trabalho! Precisamos melhorar nosso programa. Vamos ensiná-lo a perguntar ao usuário qual arquivo processar. Abra o dicionário do Finder, veja e aqui estão eles! Nada adequado. A Apple realmente cometeu tal erro? De jeito nenhum...

“Você não tem o mesmo, mas com botões de madrepérola?”

Open Script Architecture (OSA) permite adquirir quase todos os elementos necessários da linguagem. Claro, se alguém se desse ao trabalho de escrever "adição"(Scripting Addition ou OSAX) que descreve tal objeto e os comandos correspondentes. Essas adições estão localizadas na pasta Scripting Additions, localizada na pasta System (anteriormente em Extensões). Qualquer script pode usá-los, independentemente do programa em que esteja. no momento comandos.

Vamos abrir o dicionário Standard Additions (para chegar rapidamente à pasta Scripting Additions, há um botão especial na caixa de diálogo Abrir Dicionário). Aqui está - o comando “escolher arquivo”. O resultado de seu trabalho será um link para o arquivo selecionado pela pessoa na caixa de diálogo Abrir padrão. Salvaremos esse link em uma variável, que chamaremos, por exemplo, de MeuArquivo.

Nosso script ficará assim:

dizer aplicativo "Localizador"
definir Meu arquivo para escolha o arquivo
definir tipo de arquivo de Meu arquivo para"TEXTO"
definir tipo de criador de Meu arquivo para"ttxt"
fim diga

Programa bastante funcional. Mas é possível torná-lo mais conveniente? Por que executar o script separadamente e selecionar o nome do arquivo na caixa de diálogo - não é melhor usar o método Arrastar e Soltar? Tudo está ao nosso alcance!

Escrevendo gota

Então, o que queremos obter e como alcançá-lo.

  1. O programa deve funcionar independentemente do editor de scripts. Tudo fica claro com isso, já sabemos que para isso precisa ser salvo como um applet.
  2. O objetivo do script é alterar as propriedades de um determinado arquivo. Já temos essa parte pronta.
  3. O arquivo “desenhado” na imagem do script deve ser processado. É aqui que a diversão começa. Várias coisas acontecem constantemente com objetos “vivos” em nosso computador. eventos. Por exemplo, o arquivo pode ser movido, copiado ou aberto. O programa irá iniciar, executar alguns comandos ou não fazer nada e finalmente terminar. Para que um objeto “saiba” como reagir a um determinado evento, é necessária uma sub-rotina especial - "manipulador"(manipulador). Quando arquivos, pastas ou unidades são “lançados” no miniaplicativo, o Finder envia uma mensagem de comando “Abrir” e uma lista de objetos “lançados”. É para este evento que teremos que escrever um manipulador.

No caso mais simples, ficará assim:

sobre abra Lista de Arquivos — a palavra “on” inicia o manipulador de eventos
— a princípio o script funciona sozinho sem afetar nenhum programa
definir Meu arquivo para item 1 de Lista de arquivos
dizer aplicativo "Localizador" - agora comandamos o Finder
definir tipo de arquivo de Meu arquivo para"TEXTO"
definir tipo de criador de Meu arquivo para"ttxt"
fim diga
fim abrir - não se esqueça de indicar que o manipulador terminou

Para armazenar temporariamente a lista, usamos a variável FileList. As variáveis ​​​​podem ser nomeadas usando qualquer combinação de letras latinas, mas é aconselhável nomeá-las de forma que você possa entender pelo nome o que essa variável significa.

Como você pode ver, o primeiro elemento da lista passado quando o script foi iniciado é processado. E o resto? Nosso programa simplesmente não presta atenção a eles. Não é difícil adivinhar que o próximo passo no caminho para a perfeição será processar vários arquivos de uma só vez.

Uma vez, uma vez, novamente...

Até agora, todos os comandos dos nossos scripts eram executados um por um na ordem em que foram escritos. Agora precisamos repetir as mesmas ações várias vezes seguidas. Teremos que organizar uma estrutura especial - ciclo. AppleScript possui uma variedade de comandos de controle para isso. Você pode repetir ações antecipadamente um determinado número de vezes ou executá-las enquanto uma determinada condição for atendida. Mas quase todas as linguagens de programação possuem esses loops. Em nossa tarefa, outra opção é ideal - “repetir para cada elemento da lista”. Com ele, o script ficará assim:

sobre abra Lista de Arquivos
repita com Meu arquivo em Lista de arquivos - é assim que se escreve o início de um ciclo
dizer aplicativo "Localizador"
definir tipo de arquivo de Meu arquivo para"TEXTO"
definir tipo de criador de Meu arquivo para"ttxt"
fim diga
fim repetir — devemos marcar o fim da estrutura de controle
fim abrir

O que mais nosso programa precisa para se tornar totalmente profissional? E ela não tem o suficiente "infalível". Afinal, você pode “jogar” pastas e atalhos na imagem do script, mas isso só deve funcionar com arquivos normais.

Quem você quiser, escolha

Portanto, ao percorrer os elementos da lista, você precisa determinar o que é cada um deles. Somente se você encontrar um arquivo normal, altere suas propriedades. Outra estrutura de controle permite que você escolha se deseja ou não realizar alguma operação - operador condicional Se. Você pode determinar se um objeto é uma pasta ou um atalho obtendo informações sobre ele usando o comando “info for” em Adições padrão. O resultado será um objeto da classe “informações do arquivo”. Estas são suas propriedades - “pasta?” (pasta) e “atalho?” (alias) - iremos verificar. Porque precisamos que o elemento não seja uma pasta E não foi um atalho, vamos conectar duas condições operação lógica“e” (quando for suficiente cumprir qualquer uma das condições - OU primeiro, OU o segundo - use o conectivo “ou”). De modo geral, como resultado do nosso raciocínio, obteve-se o seguinte roteiro:

sobre abra Lista de Arquivos
repita com Meu arquivo em Lista de arquivos
definir a informação para informações para MeuArquivo
se(pasta de a informação é falso) e ¬
(alias de a informação é falso) então
dizer aplicativo "Localizador"
definir tipo de arquivo de Meu arquivo para"TEXTO"
definir tipo de criador de Meu arquivo para"ttxt"
fim diga
terminar se
fim repetir
fim abrir

Observe que todas as condições na instrução If devem ser escritas em uma linha. Para tornar o texto do programa mais legível, pode ser útil “dobrar” uma linha longa, como feito neste exemplo. Para fazer isso, pressione a combinação de teclas “Opção-Retorna”. O símbolo de continuação “¬” aparecerá no texto.

Claro, nesta breve lição só consegui apresentar um pouco as técnicas mais simples para trabalhar com AppleScript. Mas acho que você está convencido de que não há nada de complicado nisso. Experimente! Espero continuar este tópico em artigos futuros.

Trata-se de uma linguagem de programação, uma tecnologia que pertence à empresa, é mais utilizada para automatizar processos de trabalho e permite que os programas se comuniquem entre si. Uau :)

Não vou abrir uma série de artigos sobre o tema: “Applescript para manequins. Passo a passo" por um motivo simples: há muito material sobre esse assunto na Internet. E para não reescrever a cartilha à minha maneira e não reinventar a roda, indicarei apenas algumas fontes que me pareceram mais adequadas. Eu mesmo serei iluminado por isso.

Quase todos os autores escrevem que a linguagem de script é tão simples que qualquer usuário com pelo menos um pouco de conhecimento do inglês tradicional pode escrever nela. E você não precisa dominar todos os aspectos da programação orientada a objetos. Há parte da verdade nisso, porque no roteiro

diga ao aplicativo "Finder"

caixa de diálogo de exibição "Olá sonâmbulos!"

É difícil não entender o que é exigido de qual programa. Mas não concordo muito com OOP. Se você escrever coisas inúteis como bipar ou dizer "Quem é o homem?" , então sim, talvez você não saiba o que é um ciclo e uma aula, e OOP ainda está muito longe disso. Mas se você quer aprender a escrever programas ou scripts para facilitar as tarefas diárias para você ou para algum banco de dados, então é melhor saber o que são “Herança” e “Encapsulamento”.

Por onde começar?

Tudo é simples e ao seu alcance. Inicie o Editor de Script e primeiro vá para a ajuda. Se você usar a versão russa, não deverá haver nenhuma dificuldade.

Quem quer um livro?

Se o manual padrão não for suficiente, ou estiver escrito de forma que tudo não fique imediatamente claro para você, você também pode recorrer aos livros (eletrônicos ou impressos - você decide). O livro “AppleScript Language Guide” é frequentemente mencionado. Acontece que existe um link para ele na ajuda do Editor de Scripts.

É impossível não levar em conta outros recursos que a própria incorporadora nos oferece. Existe um livro para iniciantes “AppleScript 1-2-3” ou você pode comprá-lo com o mesmo nome.

Quanto maior, melhor

Por que não considerar recursos online? Afinal, aqui você encontra as novidades e eles respondem às avaliações dos leitores com mais frequência e rapidez. Procuremos literatura em linguagem acessível.

Além de vários artigos de revisão, você pode encontrar “” na Internet. Eu diria que estes são especificamente para aqueles que estão interessados ​​em applescript. O livro é para iniciantes, está escrito de forma simples, tem poucas páginas, mas muitos exemplos. Exatamente o que você precisa. Lá você também pode baixar um livro chamado “”.

Os manuais russos são bons, mas sem conhecimentos básicos de inglês será, para dizer o mínimo, difícil aprender a linguagem de script.

Dos artigos, eu prestaria atenção a este. Gostei da apresentação detalhada de alguns dos princípios básicos da própria linguagem de script, “curta e clara”.

Não se esqueça também dos diversos fóruns onde os usuários trocam opiniões, experiências e roteiros prontos. Pessoalmente, tenho este nos meus favoritos.

Antes de começar a pesquisar e baixar material, recomendo que você decida qual é o seu objetivo. Para desenvolvimento geral, você pode se familiarizar com algumas fontes. Para escrever scripts verdadeiramente úteis você terá que gastar vários dias/semanas/meses (dependendo de suas habilidades e tempo livre). É muito interessante e viciante.

Atualmente, não consigo estimar as chances de uma pessoa conseguir um emprego como programador ou testador Applescript. Provavelmente não é muito grande. Mas se você sente que é seu, vá em frente. Se você vê a meta e não vê os obstáculos, não importa quem precisa (pelo menos você). O verdadeiro talento será sempre apreciado. E você tem a chance de fazer o trabalho que ama.

  • AppleScript Apple, . AppleScript AppleScript. , - .

    AppleScript.

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

    1 . . . . . . . . . 7

    2 . . . . . . 10

    3 (eu) . . . . . . . . 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. , Conversor Gráfico, BBEdit, Microsoft Word AppleScript(). , AppleScript. , . . , AppleScript, AppleScript. , - AppleScript.

    . (0,15). - AppleScript. , .

    AppleScript, AppleScript:

    , ; AppleScript, .., AppleScript; (MacOS X)

    AppleScript; AppleScript; AppleScript (Mac OS X).

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

    5 AppleScript, . - AppleScript Studio, (Ferramentas de desenvolvedor XCode).

    JavaScript, .

    () . , . , . , .

    . , : . - . , . : .

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

    Copyright (c) 2003 por Bert Altenburg

    : Bert Altenburg, - .

    1. . , - . , AppleScript. AppleScript.

    2. , PC, . - , -. Monitor de CPU (utilitários, aplicativos), - . (Computação Distribuída 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 MacOS. , - . , .

    , -. , (declaração), . , .

    AppleScript, . , 1.

    AppleScript:

    diga "Esta é uma frase falada."

    Fred, Trinoids, Cellos, Zarvox, Victoria.

    diga "Esta é uma frase falada." usando "Zarvox"

    : AppleScript. , . , Victoria Zarvox.

    AppleScript. - , - . : . AppleScript - , . AppleScript, . (scriptável). , AppleScript (Mac OS X), .

    Localizador. Localizador. , . Localizador , - , . -, Lixo, Localizador.

    8, AppleScript.

    Adobe Photoshop. FotoShop. , Localizador.

    AppleScript, .

    Diga, AppleScript (Mac OS X), Finder. AppleScript (Mac OS X), - fim da contagem. Localizador AppleScript, . , :

    diga ao aplicativo "xyz"

    (diga ao bloco). xyz xyz. , AppleScript , - , . , . (, ("). : , AppleScript . . .)

    Localizador. , Localizador. Localizador, localizador.

    diga ao aplicativo "Finder" esvazie a lixeira abra o disco de inicialização end diga

    Localizador. Localizador, - , . .

    Localizador, AppleScript (Mac OS X).

    9tell aplicativo "Finder" esvazie a lixeira abra o disco de inicialização end Tellbeep

    Localizador. bipe AppleScript. , .

    Bipe (AppleScript (Mac OS X)) .

    diga ao aplicativo "Finder" esvazie o bipe da lixeira abra o disco de inicialização end diga

    Bipe do Finder, AppleScript (Mac OS X). , . , -, Finder, bip, Finder.

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

    diga ao aplicativo "Finder" esvazie o bipe da lixeira e diga para abrir o disco de inicialização

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

    diga ao aplicativo "Finder" para esvaziar a lixeira diga para abrir o disco de inicialização diga "Esvaziei a lixeira e abri o disco de inicialização para você" usando "Victoria"

    AppleScript (Mac OS X), Finder. , .

    Editor de roteiros, . Editor de scripts AppleScript, Aplicativos. , . .

    Compilar. , AppleScript , AppleScript . Ei, localizador! Jogue fora meu lixo (Finder!!) Ei, Finder! Limpe a lixeira (Finder,) Finder. (compilação) AppleScript (Mac OS X): - . , . , - . Editor de roteiros.

    AppleScript (Mac OS X).

    diga "Estou aprendendo AppleScript da maneira mais fácil!" usando "Zarvox"

    Correr, . Editor de roteiro, !

    Digitar. Enter - Espaço () (). Retorno (turno) -. Retornar .

    Compilar. - Correr, .

    Execute, Comando-R. : , -

    , (script compilado) (aplicativo).

    : , - AppleScript,

    Execução do Editor de Scripts.

    : , AppleScript ,

    Editor de roteiros. , - , (Preferências do Sistema). , . - , Editor de script, Abrir arquivo.

    : Salvar, - (somente execução). , - .

    diga ao aplicativo "Finder" esvazie a lixeira e diga

    Editor de roteiros.

    Aplicativo , :

    Aplicativo do aplicativo Editor de scripts. , xyz. - (-), pqr. - , AppleScript. , AppleScript pqr , diga .

    Editor de roteiro, -. , controle. :

    1) Editor de script de controle. (.), Diga Blocos. , Diga ao "Localizador".

    2) O Finder esvazia a lixeira, (), 1. . - .

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

    2 + 6 = xy = 3 * 4

    AppleScript. (variáveis) , . - (identificadores), . - AppleScript, definido.

    defina x como 25 defina y como 4321.234

    AppleScript, . : (- , (bugs)). , x. , largura da imagem .

    defina a largura da imagem como 8

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

    AppleScript - . , defina, digamos, para, bipe , - AppleScript. , largura da imagem, . -, .

    AppleScript, . , .

    definir pictureWidth como 8 definir pictureHeight como 6 definir pictureSurfaceArea como pictureWidth * pictureHeight

    , (operadores), - .

    defina cubeEdgeLength como 10,0 defina cubeVolume como cubeEdgeLength ^ 3

    Editor de roteiros, . , . (Resultado) , 10,0. , 1000,0. , cubeEdgeLength ^ 3 , .

    : . - . (inteiros) , - , (. 13)

Neste artigo você aprenderá o que é AppleScript, por que e quem precisa dele, como você pode automatizar os aplicativos de outras pessoas e adicionar recursos de automação aos seus.

Automatize

Muitas vezes há problemas para os quais é irracional criar um projeto separado em uma linguagem compilada. Por exemplo, quando você precisa montar rapidamente um código que deve simplesmente fazer um trabalho específico - sem qualquer decoração de GUI, lidando com todos os tipos de situações de exceção, otimização e assim por diante. É aqui que as linguagens de script vêm em socorro - shell, Perl, PHP e assim por diante, você sabe. Todos eles (ou quase todos) estão disponíveis no Mac OS X. Mas neste sistema operacional, além das linguagens de script geralmente aceitas, há também uma linguagem de script especial que é orientada especificamente para Mac OS X e está intimamente relacionada a isto. Este é o AppleScript.

O AppleScript foi incluído no sistema desde o Sistema 7. Surgido do projeto HyperCard (que continha a linguagem de script HyperTalk, que é muito semelhante ao inglês natural), o AppleScript foi originalmente criado para permitir a troca de dados entre tarefas, bem como para controlar trabalhar aplicativos de terceiros. O próprio AppleScript tem uma funcionalidade bastante modesta: nesta linguagem, mesmo os scripts para executar tarefas relativamente simples muitas vezes parecem chamadas para outros aplicativos. No entanto, após uma revisão significativa do sistema durante a transição para a linha Mac OS X, a linguagem AppleScript tornou-se mais flexível e poderosa, e a nova estrutura Cocoa permitiu aos desenvolvedores criar capacidades de automação em seus aplicativos usando AppleScript com esforço mínimo.

Roteiro simples

Para editar e executar scripts usaremos o Editor de Scripts padrão. Você pode encontrá-lo na pasta /Application/AppleScript. Primeiro, vamos escrever um script “HelloWorld” simples.

exibir alerta "Olá, mundo!" #Mostra o diálogo
diga "Hello World" # Saída para colunas

Acho que não há necessidade de explicar nada aqui, mas gostaria de destacar o acesso extremamente fácil ao sintetizador de voz do AppleScript usando o comando say. Esta é uma comunicação real com o usuário no estilo Apple :). Claro, este diálogo pode ser facilmente personalizado. Por exemplo, adicione os botões necessários:

Painel com botões adicionais

exibir alerta "Olá, mundo!" botões("Olá", "Tchau")
definir resposta para botão retornado do resultado
se a resposta for "Olá", então
...
outro
...
terminar se

Agora vamos escrever algo mais útil. Por exemplo, vamos deixar o usuário selecionar um arquivo e ler seu conteúdo:

# Painel de seleção de arquivos
defina oArquivo como (escolha o arquivo com o prompt "Selecione um arquivo para ler:" do tipo ("TEXTO"))
abra para acessar o arquivo

Lendo o conteúdo

defina fileContents como (leia o arquivo)
feche o acesso ao arquivo

Esses exemplos mostram claramente a ideia principal do AppleScript - ele está muito próximo da língua inglesa viva. Portanto, ler scripts é fácil mesmo para quem está longe de programar. Cada comando verbal pode ser complementado com substantivos modificadores e parâmetros.

Interação com aplicativos

AppleScript usa um mecanismo de mensagens para se comunicar com outros aplicativos:

diga ao aplicativo "Microsoft Word"
desistir
fim diga

Usando o comando Tell, selecionamos o aplicativo para o qual enviaremos a mensagem. EM nesse caso pedimos ao MS Word para sair. Qualquer número de comandos pode ser enviado no bloco "tell - end Tell". As mensagens enviadas para o aplicativo podem ser mais específicas. Tudo depende de quais comandos seus desenvolvedores implementaram. O iTunes, por exemplo, exporta alguns comandos e propriedades para o ambiente AppleScript:

Inicie a lista de reprodução desejada no iTunes

diga ao aplicativo "iTunes"
reproduza a lista de reprodução chamada "Meu favorito"
fim diga

Você pode descobrir o conjunto de mensagens e tipos de dados que um aplicativo exporta para o ambiente AppleScript observando sua terminologia (o arquivo AppName.scriptRerminology nos recursos do aplicativo). Para isso, no Editor de Scripts, acesse o menu “Arquivo - Abrir Dicionário - ...” e selecione o aplicativo desejado.

Para facilitar o trabalho com as classes e comandos que a aplicação exporta, eles estão organizados em seções. Todas as aplicações que suportam scripts possuem pelo menos duas seções: uma padrão e outra mais específica para esta aplicação seções. A seção padrão contém um conjunto de comandos padrão que qualquer aplicativo Mac suporta: abrir, imprimir, fechar e sair. O conteúdo das seções restantes depende da imaginação dos desenvolvedores.

Executando AppleScript de dentro do seu aplicativo

Se você estiver escrevendo um aplicativo em Objective-C/Cocoa, é possível que algumas coisas sejam mais convenientes de fazer usando AppleScript. Para criar e executar scripts em aplicações Cocoa, existe a classe NSAppleScript. Aqui está um exemplo simples de seu uso - a implementação da obtenção de uma linha de status do usuário no aplicativo iChat.

NSAppleScript *iChatGetStatusScript = nil;
iChatGetStatusScript = [ initWithSource: @"diga ao aplicativo "iChat" para obter mensagem de status"];
NSString *statusString = [stringValue];

É possível que a mesma coisa possa ser feita de outra maneira, sem usar um script gerado em tempo de execução, mas é improvável que o código alternativo pareça mais simples do que este. Se os scripts forem grandes, você poderá armazená-los em recursos de pacote configurável e lê-los quando necessário.

Automação em uma aplicação Cocoa

É muito útil adicionar suporte a scripts às suas aplicações Cocoa, pois se a sua aplicação possuir uma interface para AppleScript, então o usuário, ao escrever algumas linhas em AppleScript, poderá personalizá-la de acordo com suas necessidades e integrá-la a outras aplicações. que ele instalou e depois, por exemplo, automatizar a solução de tarefas rotineiras. Para exportar tipos e comandos para o ambiente AppleScript, você deve descrevê-los em arquivos especiais. É possível fazer isso nos arquivos .scriptSuite e .scriptTerminology ou em um arquivo com extensão .sdef. Em ambos os casos os arquivos estão no formato XML, mas é mais fácil trabalhar com sdef.

O conteúdo do arquivo scriptTermonology é exibido no Editor de Scripts ao visualizar o dicionário do aplicativo. Este arquivo contém uma descrição dos objetos exportados para AppleScript.

Abrindo o arquivo scriptSuite no Editor Plist, você pode ver que ele contém as seguintes seções principais:

  • AppleEventCode - código de quatro letras que identifica a aplicação para o ambiente AppleScript (o código deve ser único dentro do mesmo sistema);
  • Nome - o nome da seção que contém os comandos e classes exportados.

Não faz sentido desmontar a estrutura interna desses arquivos, pois provavelmente você só terá que lidar com arquivos sdef.

Exemplo de arquivo sdef
















sdef mistura terminologia de script com descrições detalhadas de comandos e tipos, que podem ser encontrados em arquivos .scriptingSuit. Vamos colocar isso em prática criando um aplicativo Cocoa que suporta AppleScripting. Para fazer isso, no novo projeto Cocoa, adicione os sinalizadores Scripting e OSAScriptingDefinition com o nome do nosso arquivo sdef ao arquivo Info.plist:

...
NSApleScript habilitado

Definição de OSAScripting
Scripting.sdef

Vamos adicionar o seguinte arquivo Scripting.sdef ao projeto:












Portanto, no AppleScript temos uma propriedade disponível - myprop. Resta escrever o código ObjC que processará a leitura dessa propriedade nos scripts. Para isso, é necessário criar a categoria NSApplication, pois esta é a classe que escolhemos como destinatário das mensagens dos scripts.

#importar
@interface NSApplication (Scripting) - (NSString *) myprop;
@fim
@implementação NSApplication (Scripting) - (NSString *) myprop
{
return @"Esta é minha propriedade";
}

Se passarmos agora às propriedades de nossa aplicação do AppleScript, veremos nossa propriedade e seu valor entre elas:

diga ao aplicativo "Scripting"
propriedades
fim diga

Conclusão

Claro, é impossível descrever aqui todos os recursos do AppleScript e sua interação com aplicativos Cocoa. Sim, isso não é necessário - existem manuais para isso. E nós, de nossa parte, continuaremos a série de artigos sobre codificação para plataformas Apple e contaremos muito mais coisas novas e interessantes.

© 2024 ermake.ru - Sobre reparo de PC - Portal de informações