# Botão de Ação da Calculadora com Diálogo

Vamos considerar um exemplo de robô que mostra como "adicionar" seu próprio botão na janela de um aplicativo de terceiros e executar uma ação específica ao clicar nele, neste caso - exibir uma janela de diálogo com texto e link. Antes de iniciar o projeto, o Calculadora deve estar em execução (verificado com Windows 10).

O projeto do robô consiste em um diagrama. Assim, se descrevermos passo a passo, este robô funciona da seguinte maneira:

1. Cria um botão para a calculadora “Mostrar nossa dica” usando 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).
2. Após clicar no botão criado, exibe a janela modal criada no “Editor de Janelas” com a dica e o link para a calculadora no Google Chrome.
3. Após clicar no link, inicia a calculadora no Google Chrome, e após clicar no botão “Fechar” – fecha a janela modal.

O diagrama do projeto é assim (para conveniência, os blocos do diagrama estão numerados):<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd9Q74m933XbFrtWtKk1KK-0Hsr2tAFTuniCK3AhkpLwFUsKrNkS0Hyq7ZZmCMkEbneBUfkVddvXSGCERfFAeM8ShP3YTBXOlWbe95SHwKHBzekf1qDJozuothAeEcHB0lmuAo8TeS_tNNnY1pGlCiRNydF?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco começa qualquer diagrama).
2. **Bloco “Mostrar botão para a calculadora”** 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 definido, as coordenadas da janela criada serão vinculadas ao controle em outro aplicativo. Para criar e editar sua janela, use o botão “Editar...” do bloco, e para criar janelas reutilizáveis - o botão “Editor de Janelas” na barra de ferramentas principal. Para este bloco, as seguintes propriedades são especificadas:

* 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 deve trabalhar);
* Ângulo de anexo (seleção do valor do ângulo de anexo da janela, quando um seletor é definido, o valor do ângulo de anexo indica a anexa do canto superior esquerdo da janela ao canto do elemento encontrado);
* Deslocamento X (deslocamento na coordenada X ao exibir a janela);
* Deslocamento Y (deslocamento na coordenada Y ao exibir a janela).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfQutQ7GnRKyv8ZDtj84oiqMndaEZT9guKsqv1q2mqpBNIPo0ODTtuF8EULskfCm_awVKWP4XY4n_UouPXFS3aXNAsWXlgERMu4ISdWzn9NcrpPO65563drrZFfVozWF_ovFj9tN9D-u13gXGAlbJDM9yU?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

O botão que o bloco mostra foi criado usando a ferramenta “Editor de Janelas”.

Você pode visualizá-lo e editá-lo clicando no botão “Editar…”, que está dentro do bloco.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfVdNey6Jpwvul2fu6ru4ybsCrwy5JcXtkHTLjocXT11PQWJrtS94i1AmN0a3Mks10F4Ij9N_djm-auc-bR--HJOMVw1Gapw2WEvJOBxaJc3DFsKlTtbFKLqrg2ydSGgtmrAbG9qbOCQuNpkwFIM1cGAbE?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

3. **Bloco “Condição”** verifica a condição especificada quanto à veracidade, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da 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, a condição utilizada é o clique no botão, e como tal está definido: $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_4nXc2KUtDKxeED8NSqAhXjxD0wiWA_ZC4MShKdOmQY3iocsjjKLAneWfeju2patKZGEyEyHdpC2TJj4NvoBDDOZ9m4X0TaTXVC-8k1rpP70Kb6cSPISSey7CVenTTVesz_DKGIqXVokr-XIbjMhO2Wr4fEtkd?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

4. **Bloco “Mostrar janela com dica e link”** 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 definido, as coordenadas da janela criada serão vinculadas ao controle em outro aplicativo. Para criar e editar sua janela, use o botão “Editar...” do bloco, e para criar janelas reutilizáveis - o botão “Editor de Janelas” na barra de ferramentas principal. Para este bloco, as seguintes propriedades são especificadas:

* Configuração (string de configuração);
* Objeto da janela (variável com o objeto da janela);
* Modal (ao definir a flag, a janela será exibida como modal);
* ID do processo (variável que armazena o identificador do processo, indica com qual aplicativo deve trabalhar);
* Ângulo de anexo (seleção do valor do ângulo de anexo da janela, o valor “Padrão” indica o centro do elemento).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdSJ2yLkSHBunRTU64VmHr-ktK-mZ2cuYgjZux8Sggcf8LlOvuJqaz_wFxssqmlcYqfJInmKw1aaN5aXQgreasGULpKuR1tZpq8dvJlqE4qawMlXEdyLud-eYvc36P58_Lx5lz-cjn-kAwf-JvAIn_Hv7U?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

A janela que o bloco mostra 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_4nXe0UVlMoXCCcXFnKGVNhNlaAnlJyJoe4wvj64kK4ZOw-UGr-tsb7LH86zhSP_uIHofnje_AfnvuY8dyBOnot5lB4-bd7fm8LltTycyQGQYANedVtC7c1yjX9CnWsW4KCFFUBH359xH229EEBKbkWSwA3YZM?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

5. **Bloco “Log”** permite registrar mensagens e/ou valores de variáveis no log durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas está uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô o valor da variável.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcurrCc842ZXeenJxinhWZcUKxoBHmCPY8hg9v-DUIhOFO4rgDtW86ZblBG-Z8egsSZvH6boBlxNTXVTEdQBY6bbt1yQAQ-Cn9F-qLf0COz69TqTbigsuq2vu_FscWfYb2kr398wU08G4ATlgMgxZznnYE8?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

6. **Bloco “Condição”** verifica a condição especificada quanto à veracidade, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da 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, a condição utilizada é o clique no link, e como tal está definido: $ControlEvent.Contains("LinkLabel"). Ou seja, se a variável contém o texto "LinkLabel", então a saída é “Sim”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdOYoI-awn6I4dqEsuP6h1NgQs96U0wm68p29srr7kAB_BYntQ3NJeoELLYygNINYolne9HqUjDQy59Hl9blAJmFgK2vg3dlB18nbeA0qEZ4Y1-XDNv3pXHVJyGlgZs8MgDHFD953arre4sG_-uobHWbqrH?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

7. **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_4nXf8EdDnlYa69F7R6mFaOVJuVcYfCOWtRIsQqeqO9ShxtCD3nCcL2D6032j8X2RR4Fw4Mx-lqwt6OuOF63-hUsV81nHuYZUK5A4ypXXjXdgXFXJH_daF7SFYEmVYhHqjomccfLY2I4aL4qdxeGKBlGi7rcDd?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>

8. **O bloco “Condição”** verifica a condição especificada quanto à veracidade, após o que a execução do script continua na direção da saída “Sim” (se a condição for verdadeira) ou na direção da saída “Não” (se a condição não for verdadeira).

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 botão “Fechar”, sendo estabelecido: $ControlEvent.Contains("CloseButton"). Ou seja, se a variável contém o texto "CloseButton", então a saída é “Sim”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf1akdUiw2omDtGBYb1qmaTC8-s9fHNawllfIr_v10D8mkGtfbcN4_6EV9JidXs10WTly9c59qIZXMutsfbwi1nwy51joRZsWiRURj1wbPnH8V8mdMXD5Qx21Pp9Li86ptNsuDtiSUlbPB5Uu33vckdCd4?key=DhcpajRIrlTxITYaT99gBQ" alt=""><figcaption></figcaption></figure>


---

# 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-button-with-dialog.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.
