# Gatilhos de Ação do Calculador

Vamos considerar um exemplo de robô que monitora diferentes eventos na interface de outros programas e, dependendo do evento ocorrido, executa diferentes ações: exibir uma mensagem, uma janela, criar um documento, acessar um site, enviar um e-mail.

**Nota:** *antes de iniciar o projeto, é necessário abrir a Calculadora (testado com Windows 10) e digitar o número desejado na calculadora para que o evento correspondente ocorra.*

O diagrama do projeto é assim (para facilitar, os blocos do diagrama estão numerados):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf3WQsHGHYugUvPzu308yojZWkCRtRtJjOf_pJKoZR120a6Kd-imlpZk3Rnjhi2AGt4cSQz65iLbwBRB6PiMzu8qVfwSc4911Tj5Q-kv29WfT3UrOW9WPHbR96sXxfeUfJ8ilJgMXiObveND283ix-jABY?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

Neste exemplo, são utilizados conectores. Eles são necessários para que o diagrama do projeto possa ser facilmente lido.

1. **Bloco “Início”** (este bloco é o ponto de partida de qualquer diagrama).
2. **Bloco “Seleção Paralela”** permite executar pseudo-paralelamente um dos blocos conectados diretamente às suas saídas, escolhendo aquele que não gera erro, e após a execução bem-sucedida desse bloco, continuar a execução do script. O bloco conectado é considerado executado com sucesso se não gerar erro (exceção). Para este bloco, é especificada a propriedade “Tempo de Espera” (tempo limite de espera para a execução dos blocos em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcEVFtvAnigyhArmIkbsRL1-CONtmHTLh8Nz3W6tDHLTWYrL76dUyDsQBdPEYYyY8l18XpEaVHEJgTr7jRByoQIZrnUBxxhoCY2PxXWmJUkLmQvxSGQ7FFYoNBjIjc553ZqHCJhV3ZcZwE0yyZRM7cqmcCT?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

3. **Bloco “Controlar Elemento”** verifica se o elemento com o seletor especificado está em um dos estados indicados. Para este bloco, são especificadas as seguintes propriedades:

* Seletor (identificador do elemento da interface do usuário);
* ID do Processo (variável que armazena o identificador do processo, indica com qual aplicativo é necessário trabalhar);
* Estado (estado que deve ser verificado; neste caso, o atributo é verificado);
* Tipo de Comparação (tipo de comparação; neste caso, o tipo “Wildcard” é especificado);
* Valor de Comparação (valor com o qual o valor do atributo obtido será comparado, neste caso: 365);
* Resposta Esperada (valor esperado após a verificação);
* Atributo (nome do atributo);
* Atraso Antes (atraso antes da execução do bloco em segundos);
* Atraso Depois (atraso após a execução do bloco em segundos);
* Tempo de Espera (tempo limite de espera do elemento especificado em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfnkCN42N20wOJAy9fzlGBuHt8s6gYXUNd_3hyx3w8ok_5KxqkHvKTSx_k28irH8W4FvAS1MFJCnhSEZWV4mKOsOGJ6HtLGKi0CRiGQv-IRLaB_SxlQmdFiNfKJD-wQFT_S-9NAPZtd-E77iKND5B-xEQc?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

4. **Bloco “Janela com Mensagem”** exibe ao usuário uma caixa de diálogo modal, com um título, texto e um conjunto de botões especificados. Para este bloco, são especificadas as seguintes propriedades:

* Mensagem (variável que será exibida dentro da caixa de diálogo, neste caso: “Valor 365 detectado”);
* Botões (botões que estarão disponíveis para o usuário clicar).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc1DMbMl9QcMqk_ouadOWWrCLCLD8xkOHkdIgZwlEMST3_D5Z0_5ulYTi8fVzg1_P1etVPtj_vNugtGtWXnhF7qMlhKur-EZca60_PSKxwZk16g-ikTzy80hm1qKAZnXu_05E3Yx8BVOYZ_LJDeB4Gusv66?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

<br>

5. **Bloco “Controlar Elemento”** verifica se o elemento com o seletor especificado está em um dos estados indicados. Para este bloco, são especificadas as seguintes propriedades:

* Seletor (identificador do elemento da interface do usuário);
* ID do Processo (variável que armazena o identificador do processo, indica com qual aplicativo é necessário trabalhar);
* Estado (estado que deve ser verificado; neste caso, o atributo é verificado);
* Tipo de Comparação (tipo de comparação; neste caso, o tipo “Wildcard” é especificado);
* Valor de Comparação (valor com o qual o valor do atributo obtido será comparado, neste caso: 893);
* Resposta Esperada (valor esperado após a verificação);
* Atributo (nome do atributo);
* Atraso Antes (atraso antes da execução do bloco em segundos);
* Atraso Depois (atraso após a execução do bloco em segundos);
* Tempo de Espera (tempo limite de espera do elemento especificado em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfnkCN42N20wOJAy9fzlGBuHt8s6gYXUNd_3hyx3w8ok_5KxqkHvKTSx_k28irH8W4FvAS1MFJCnhSEZWV4mKOsOGJ6HtLGKi0CRiGQv-IRLaB_SxlQmdFiNfKJD-wQFT_S-9NAPZtd-E77iKND5B-xEQc?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

6. **Bloco “Mostrar Janela”** permite criar suas próprias janelas (formulários) e exibi-las em modo modal e não modal, incluindo de forma assíncrona em relação ao fluxo do script. Se um seletor for especificado, as coordenadas da janela criada serão vinculadas ao controle em outro aplicativo. Para criar e editar sua janela, utilize o botão “Editar…” do bloco, e para criar janelas reutilizáveis - o botão [“Editor de Janelas”](https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/rabota-v-sherpa-designer/osnovnoe-menyu/panel-razrabotka/menyu-dopolnitelno/redaktor-okon) na barra de ferramentas principal. Para este bloco, são especificadas as seguintes propriedades:

* Configuração (string de configuração);
* Objeto da Janela (variável com o objeto da janela);
* Seletor (identificador do elemento ao qual a janela está vinculada ao ser exibida);
* ID do Processo (variável que armazena o identificador do processo, indica com qual aplicativo é necessário trabalhar);
* Ângulo de Anexação (seleção do valor do ângulo de anexação da janela).

Aqui, o bloco “Mostrar Janela” foi adicionado usando a ferramenta [gravação de ações do usuário](https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/rabota-v-sherpa-designer/osnovnoe-menyu/panel-razrabotka/menyu-zapis/zapis-deistvii-polzovatelya).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfovPINBmNv2WizUw987CcOMxFqTF_w6g5R6vHWF-gnknABs6ZlVmq-U7yEF0I-xqS4jVtJGexbZwOn4ub6Lsour8yZOhEN9NI48phDBUKy9yjDCyOzBQpN9liNfiTb1qbkVla_y0jiUDBJiZL-_-8PxUCv?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

A janela exibida pelo bloco foi criada usando a ferramenta “Editor de Janelas”. Você pode visualizá-la e editá-la clicando no botão “Editar…”, que está dentro do bloco.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfgQb11lVq88eTodgCkUg5D4oDKZ8cXokUSPf15sIEo_SAKjAawnDAQlub5dkgGix6wEt5mVoEvyZEA3DiZfwWar7aRYK1RwEFEteOrqUhRBxW2KZTwaRsaKh4eQjfkbUk3erMicKPZHG6lg2VlUc3JOeg3?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

7. **Bloco “Obter Texto”** permite obter o texto visível do elemento da interface do usuário selecionado (rótulo, campo de texto, item de menu, etc.). Para este bloco, são especificadas as seguintes propriedades:

* Seletor (identificador do elemento da interface do usuário);
* Tipo de Valor (tipo de valor extraído, neste caso, é o nome);
* ID do Processo (variável que armazena o identificador do processo, indica com qual aplicativo é necessário trabalhar);
* Tempo de Espera (tempo limite de espera do elemento especificado em segundos).
* Rolagem Automática (ao ativar a flag, a lista será automaticamente rolada até o elemento que está fora da área visível).

Aqui, o bloco “Obter Texto” foi adicionado usando a ferramenta de gravação de ações do usuário.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc2Ds_2P6CsWXgZsdNvAu0fmGm70oD_qm0cE55eL8rx9L_bZOUugxRffoqAt8dVkr-4BkgZ00Vvy1EVy_Thdf2ipPGWnQxnZJV9S7De1lDt55_mK-5xIM3IZSutqpCLjYlTp8If5bNt3EPkgIo5_QHMNqOH?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

8. **Bloco “Converter String”** permite converter uma string para um formato especificado. Para este bloco, são especificadas as seguintes propriedades:\* Texto (linha de entrada);

* Tipo de conversão (tipo de conversão, neste caso, o tipo “Int” – mantém apenas números na string).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXejEmpkn7KVjpJsVsdCg5DL4Xsw8_3RtmlkhYGnP8LsqNz3h_1Pl1JogBela5w3tXIGDhE7vFOYHeeowTg_mX6nAVIsl0Jq2NBSLKbp0KoTJsPrOIpaTUuoI-6tvtDx1X7-VcPCaz3n19Vblz6bmH7wI_RV?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

9. **Bloco “Condição”** verifica se a condição especificada é verdadeira, após o que a execução do script continua na saída “Sim” (se a condição for atendida) ou na saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” é igual (==)/ maior (>)/ menor (<) “valor”.

Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, então a saída é “Sim”, caso contrário – a saída é “Não”.

$Result > 5, ou seja, se o valor da variável $Result for menor que 5, então a saída é “Sim”, caso contrário – a saída é “Não”.

Neste caso, é utilizada a condição de clique no link, sendo estabelecido: $ControlEvent != "". Ou seja, se a variável $ControlEvent não estiver vazia, então a saída é “Sim”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfvkv3qB9wq9LiX5Vlu-dpyfD3WqpTBXJY5rvgdE4NW75WPMZclsJQQq0nQjz8opv7xs7TttCfnPVnMRd_5pn_fDrnKoKldIb1qVhtVvzCNtfMmrcJfO-2tDyc0A7sEl63RKkva9u2hdIkNgdWyK9_Akydu?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

10. **Bloco “Controlar elemento”** verifica se o elemento com o seletor especificado está em um dos estados indicados. Para este bloco, as seguintes propriedades são especificadas:

* Seletor (identificador do elemento da interface do usuário);
* ID do processo (variável que armazena o identificador do processo, indica com qual aplicativo deve-se trabalhar);
* Estado (estado que deve ser verificado; neste caso, o atributo é verificado);
* Tipo de comparação (tipo de comparação; neste caso, o tipo “Wildcard” é especificado);
* Valor de comparação (valor com o qual o valor obtido do atributo será comparado, neste caso: 35);
* Resposta esperada (valor esperado após a verificação);
* Atributo (nome do atributo);
* Atraso antes (atraso antes da execução do bloco em segundos);
* Atraso após (atraso após a execução do bloco em segundos);
* Tempo de espera (tempo máximo de espera para o elemento especificado em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdZR6CpQqCk0UBEKst4HKKswrC8bfzeoPSqstn2ZFY7GuQxa_t69InD0_LCqzkCE3e9N5O0vQ_gSJeZXtALwgRnaddeWoeymX9iQSlD58ire0j_yfNsiShVLzZu6TwaEww_eJzthjGQPv2tzPT1iGFo7gH5?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

11. **Bloco “Iniciar navegador”** inicia o navegador selecionado. Para este bloco, as seguintes propriedades são especificadas:

* Tipo de navegador (navegador que deve ser aberto);
* URL (link que deve ser aberto ao iniciar o navegador);
* Tempo de espera (tempo de espera para a abertura do navegador em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcYC9rpkV6a8FDhndRZcPfPpjYMQAKROcuQkeTy6Rs17VIFuPrz93LOY-rzLl7tcjDcsky7Wcuyw2POAmsfKkIxt7R7FT_yfiAj_IXXayTh383WMi5RpH4MhlHJ3_rLCKvKzoMPyCKiL1MpZOxZZDrtrS_9?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

12. **Bloco “Controlar elemento”** verifica se o elemento com o seletor especificado está em um dos estados indicados. Para este bloco, as seguintes propriedades são especificadas:

* Seletor (identificador do elemento da interface do usuário);
* ID do processo (variável que armazena o identificador do processo, indica com qual aplicativo deve-se trabalhar);
* Estado (estado que deve ser verificado; neste caso, o atributo é verificado);
* Tipo de comparação (tipo de comparação; neste caso, o tipo “Wildcard” é especificado);
* Valor de comparação (valor com o qual o valor obtido do atributo será comparado, neste caso: 2 000);
* Resposta esperada (valor esperado após a verificação);
* Atributo (nome do atributo);
* Atraso antes (atraso antes da execução do bloco em segundos);
* Atraso após (atraso após a execução do bloco em segundos);
* Tempo de espera (tempo máximo de espera para o elemento especificado em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf5xTVUI8wLB09LpbdcB1RyNb8UlI1_vk0nChIY28stP3a9ftyAYumKvm8AqAX3PrTlEYbJfhdW-NXNiDcg_AXdI-SzlNvqx_EsPlxJq_ztNWT_RyfwRiyJQqdTgu-YBHXFGBGFj6rOuMaH_pgbZbopp23N?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

13. **Bloco “Criar documento”** permite criar um documento Word. Para este bloco, as seguintes propriedades são especificadas:

* Usar COM (ao ativar a flag, o trabalho será realizado com o Word instalado);
* Visibilidade (ao ativar a flag nesta propriedade e na propriedade “Usar COM”, a interface do Word será exibida na tela do monitor).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdTFMOXNn3aohsUPZtJr4jC62ZejV7jwEq2UYl1ZZZF-RNS1AGBlrmvPEFNiv8JT6_mibq2wUrFAvapQX2eFUgP9ZhMW-lRiCjlcVsVdd2iQNE_lYDWSDv7konqun3wbW8xZavDhOe0A76NYYhMrZBWKUi3?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

14. **Bloco “Gravar texto no documento”** permite gravar texto em um documento Word. Para este bloco, as seguintes propriedades são especificadas:

* Link para o documento (link para o documento Word aberto, com o qual está sendo trabalhado no momento. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Word, que foram usados anteriormente para criar ou abrir este documento);
* Texto (texto que deve ser gravado no documento, neste caso, o texto é: “Este é um documento de teste que foi criado porque o número 2 000 foi inserido no Calculadora”).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe7btpfWm1f5P15KY-OG6ItzunPSyNYsphkhM7byQ830w7g6kkLD3r1kZfc1rdvCw0Bh2oecpFZEUOKpkXCBKATWpNX0P30OeQulPZm6plTohYABjEHPhgjkNrHT9GDdZd9A9YMt0uijVNE438SwCA2cB5C?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

15. **Bloco “Controlar elemento”** verifica se o elemento com o seletor especificado está em um dos estados indicados. Para este bloco, as seguintes propriedades são especificadas:

* Seletor (identificador do elemento da interface do usuário);
* ID do processo (variável que armazena o identificador do processo, indica com qual aplicativo deve-se trabalhar);
* Estado (estado que deve ser verificado; neste caso, o atributo é verificado);
* Tipo de comparação (tipo de comparação; neste caso, o tipo “Wildcard” é especificado);
* Valor de comparação (valor com o qual o valor obtido do atributo será comparado, neste caso: 3 000);
* Resposta esperada (valor esperado após a verificação);
* Atributo (nome do atributo);
* Atraso antes (atraso antes da execução do bloco em segundos);
* Atraso após (atraso após a execução do bloco em segundos);
* Tempo de espera (tempo máximo de espera para o elemento especificado em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeoSx9Q1WYvkgiODg3RFUb2y29EaLq70wz48jIFF-9X3plZrfPCJ1q45pMS69Y-EcqWLMaflx-BBRyUpdfVpLh37pvIE0x8Bl57_t9qKy2Mq0gECexNT32u1byfMmK7yjpMyWKuljhNLuUUgZIgn-T_6KOH?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

16. **Bloco “Enviar e-mail”** permite enviar um e-mail usando o protocolo SMTP. Para este bloco, as seguintes propriedades são especificadas:

* Assunto do e-mail (assunto do e-mail, neste caso: “Novo evento na Calculadora”);
* Texto do e-mail (texto do e-mail, neste caso: “O usuário digitou 3 000”);
* HTML (ao ativar a flag, o conteúdo do e-mail será enviado como uma página HTML e pode conter tags);
* Tempo de espera (tempo de espera pela resposta do servidor em segundos).

  <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcyMVJ1jsC5g5mLqqkoYN983zN9JyX3kpD_0NEhQYelKh8MYBtaPNVYjf6TW80ioeM9-8laaxAfO_4oJSbjs-8YiUl0MnTKlJ7bsVx7QMHpLQVDJ3Z6ndfVJBZGgEriR8yoCuz0MB12oSNt2-pUYYHOsAnB?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

17. **Bloco “Janela de Mensagem”** mostra ao usuário uma janela de diálogo modal, com um título definido, texto e um conjunto de botões. Para este bloco, as seguintes propriedades são especificadas:

* Mensagem (variável que será exibida dentro da janela de diálogo, neste caso: “Mensagem enviada”);
* Botões (botões que estarão disponíveis para o usuário clicar).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcoWiWykzd3lj2lHC7tNCaz8V16CNe8TGomc-mZ6dC22IA5njTj7KeR8gPtmGVnddyKL0RPmjzsa158iUfse0A6tq-nxkJB20EOmulcx9mXSfET28LOV2QtLEuuYdMl6b-C3Y3_Fpum4d6CeIOIvZJ1Rqo?key=2Kw34UXGjHk-7PKjgLzXFw" alt=""><figcaption></figcaption></figure>

18. **Bloco “Clique do Mouse”** emula um clique do mouse no botão de redefinição. Este bloco foi adicionado usando a ferramenta de gravação de ações do usuário.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/primery-robotov/calculator-action-triggers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
