- Visão geral
- Automação de Interface Gráfica
- Sobre o pacote de atividades UIAutomation
- Aplicativos e tecnologias automatizados com a Automação de Interface Gráfica
- Compatibilidade do projeto
- UI-ANA-016 - Extrair URL de navegador aberto
- UI-ANA-017 - ContinuarComErro verdadeiro
- UI-ANA-018 - Listar atividades de OCR/Imagem
- UI-DBP-006 - Uso do contêiner
- UI-DBP-013 - Uso Incorreto da Automação do Excel
- UI-DBP-030 - Uso de variáveis proibidas em seletores
- UI-DBP-031 - Verificação de atividades
- UI-PRR-001 - Simular clique
- UI-PRR-002 - Simular Digitação
- UI-PRR-003 - Uso incorreto do aplicativo aberto
- UI-PRR-004 - Atrasos Embutidos em Código
- UI-REL-001 - Idx grande em Seletores
- UI-SEC-004 - Dados de e-mail do seletor
- UI-SEC-010 — restrições de app/URL
- UI-USG-011 - Atributos não permitidos
- UX-SEC-010 — restrições de app/URL
- UX-DBP-029 - Uso de senha não segura
- UI-PST-001 - Nível de log de auditoria nas configurações do projeto
- Ferramenta de Migração de Navegador do UiPath
- Região do Recorte
- Computer Vision Recorder
- Índice de atividades
- Ativar
- Anchor Base
- Anexar Navegador
- Anexar Janela
- Block User Input
- Texto Explicativo
- Marcar
- Click
- Clicar na Imagem
- Click Image Trigger
- Click OCR Text
- Clicar no Texto
- Click Trigger
- Close Application
- Fechar Guia
- Close Window
- Context Aware Anchor
- Copy Selected Text
- Element Attribute Change Trigger
- Element Exists
- Element Scope
- Element State Change Trigger
- Export UI Tree
- Extrair Dados Estruturados
- Find Children
- Localizar Elemento
- Localizar Imagem
- Find Image Matches
- Find OCR Text Position
- Localizar Elemento Relativo
- Find Text Position
- Get Active Window
- Get Ancestor
- Get Attribute
- Get Event Info
- Get From Clipboard
- Obter Texto Completo
- Get OCR Text
- Get Password
- Get Position
- Get Source Element
- Get Text
- Obter Texto Visível
- Voltar
- Avançar
- Ir para a Página Inicial
- Google Cloud Vision OCR
- Hide Window
- Highlight
- Hotkey Trigger
- Hover
- Focalizar Imagem
- Hover OCR Text
- Focalizar Texto
- Imagem Existe
- Indicate On Screen
- Inject .NET Code
- Inject Js Script
- Invoke ActiveX Method
- Key Press Trigger
- Carregar Imagem
- Maximize Window
- Microsoft Azure Computer Vision OCR
- Microsoft OCR
- Microsoft Project Oxford Online OCR
- Minimize Window
- Monitorar eventos
- Mouse Trigger
- Move Window
- Navegar Para
- OCR Text Exists
- On Element Appear
- On Element Vanish
- Aparecer Na Imagem
- Desaparecer Na Imagem
- Abrir Aplicativo
- Abrir Navegador
- Atualizar Navegador
- Replay User Event
- Restore Window
- Save Image
- Select Item
- Select Multiple Items
- Enviar Tecla de Acesso
- Set Clipping Region
- Set Focus
- Set Text
- Set To Clipboard
- Set Web Attribute
- Show Window
- Iniciar Processo
- System Trigger
- Take Screenshot
- Tesseract OCR
- Texto Existe
- Dica de ferramenta
- Type Into
- Digitar Texto Seguro
- Use Foreground
- Wait Attribute
- Esperar Elemento Desaparecer
- Aguardar Imagem Desaparecer
- Verificação de acessibilidade
- Application event trigger
- Block User Input
- Check/Uncheck
- Check App State
- Check Element
- Click
- Click Event Trigger
- Drag and Drop
- Extract Table Data
- Localizar elementos
- For Each UI Element
- Get Browser Data
- Obter Área de Transferência
- Get Text
- Get URL
- Go To URL
- Highlight
- Hover
- Inject Js Script
- Keyboard Shortcuts
- Keypress Event Trigger
- Mouse Scroll
- Navigate Browser
- Select Item
- Set Browser Data
- Definir Área de Transferência
- Set Runtime Browser
- Set Focus
- Set Text
- Take Screenshot
- Type Into
- Unblock User Input
- Use Application/Browser
- Window operation
- Realize pesquisa no navegador e recupere resultados usando APIs de Automação de interface gráfica
- Navegação na Web
- Localizar imagens
- Clicar em imagens
- Disparar e monitorar eventos
- Criar e substituir arquivos
- Páginas HTML: extrair e manipular informações
- Manipulação de janelas
- Seleção automatizada de listas
- Localizar e manipular elementos de janela
- Gerenciar automação de texto
- Carregar e processar imagens
- Gerenciar ações ativadas pelo mouse
- Automatizar o runtime de aplicativos
- Execução automatizada de um aplicativo local
- Navegação em navegador
- Automação da Web
- Exemplo de escopo de disparador
- Habilitar o suporte de Automação de Interface Gráfica no DevExpress
- Computer Vision Local Server
- Automação Móvel
- Notas de versão
- Sobre a arquitetura de automação de dispositivos móveis
- Compatibilidade do projeto
- Get Log Types
- Get Logs
- Get Page Source
- Get Device Orientation
- Get Session Identifier
- Instalar Aplicativo
- Gerenciar Aplicativo Atual
- Manage Other App
- Open DeepLink
- Abrir URL
- Mobile Device Connection
- Deslizar Direcional
- Padrão de Desenho
- Positional Swipe
- Press Hardware Button
- Set Device Orientation
- Take Screenshot
- Obter parte da captura de tela
- Element Exists
- Execute Command
- Get Attribute
- Get Selected Item
- Get Text
- Set Selected Item
- Set Text
- Deslizar
- Tap
- Type Text
- Terminal
- Notas de versão
- Sobre o pacote de atividades Terminal
- Compatibilidade do projeto
- Melhores práticas
- Find Text
- Get Color At Position
- Get Cursor Position
- Get Field
- Obter Campo na Posição
- Obter Área da Tela
- Get Text
- Obter Texto na Posição
- Mover Cursor
- Mover cursor para o texto
- Enviar Tecla de Controle
- Send Keys
- Send Keys Secure
- Set Field
- Definir Campo na Posição
- Terminal Session
- Aguardar Texto do Campo
- Wait Screen Ready
- Aguardar Texto da Tela
- Aguardar Texto na Posição
- APIs de automação codificadas em terminais

Atividades do UIAutomation
APIs de automação codificadas em terminais
UiPath.Terminal.Activities
API de fluxo de trabalho codificada para automatizar sessões de emulação de terminais. Fornece métodos para estabelecer conexões com o IBM 3270/5250, VT, HP, ANSI, Wyse e outros sistemas de terminais legados por meio de conexões do BlueZone, IBM PCOMM, Attachmate ou TCP/SSH diretas e, em seguida, interagir com a tela do terminal de forma programática.
Acessador de serviço: terminal (tipo ITerminalService) Pacote obrigatório: "UiPath.Terminal.Activities": "*" nas dependências do project.json
Namespaces Importados Automaticamente
Esses namespaces estão automaticamente disponíveis em fluxos de trabalho codificados quando esse pacote é instalado:
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
Visão Geral do Serviço
O serviço terminal fornece métodos de fábrica que abrem uma conexão de terminal e retornam um objeto TerminalConnection . O objeto de conexão é a superfície da API para todas as operações de terminais — leituras de tela, acesso a campos, envio de chaves e espera.
Esta é uma API baseada em conexão:
- Chame um método de serviço (
GetConnection/GetSshConnection) para abrir e conectar. - Use o
TerminalConnectionretornado para executar operações de terminal. - Descarte a conexão quando concluída (ou use uma instrução
using).
No modo de fluxo de trabalho codificado, todos os métodos TerminalConnection geram TerminalConnectionException em caso de falha em vez de retornar códigos de erro. Isso significa que você não precisa verificar valores de retorno — apenas lidar com exceções.
Métodos de conexão
TerminalConnection GetConnection(string connectionString)
Abre uma conexão de terminal usando uma string de conexão serializada. A string de conexão codifica o tipo de provedor, host, porta, protocolo e outras configurações. Use a caixa de diálogo Configurações de conexão da atividade Terminal Session XAML para gerar uma string válida.
Parâmetros:
connectionString(string) — String de conexão serializada. Exemplo: obtido configurando uma atividade Terminal Session e copiando o valor da propriedadeConnectionString.
Retornos: TerminalConnection — Uma sessão de terminal aberta e conectada. Implementa IDisposable; use dentro de uma instrução using .
Gera: TerminalConnectionException se a conexão não puder ser estabelecida dentro do tempo limite.
TerminalConnection GetConnection(ConnectionData connectionData)
Abre uma conexão de terminal usando um objeto ConnectionData , permitindo a configuração programática sem uma string de conexão serializada.
Parâmetros:
connectionData(ConnectionData) — Objeto de configuração que especifica as configurações de provedor, host, porta, protocolo e emulação.
Retornos: TerminalConnection — Uma sessão de terminal aberta e conectada.
Gera: TerminalConnectionException se a conexão não puder ser estabelecida.
TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)
Abre uma conexão de terminal SSH com credenciais explícitas. O connectionData deve especificar ProviderType = UiPathNew e ConnectionProtocol = SSH.
Parâmetros:
connectionData(ConnectionData) — Configuração de conexão. Deve terProviderType = TerminalProviderType.UiPathNeweConnectionProtocol = CommunicationType.SSH.sshUser(string) — Nome de usuário do SSH.sshPassword(SecureString) — Senha do SSH. Use uma variávelSecureString(por exemplo, de Obter credencial) para evitar a exposição de texto simples.
Retornos: TerminalConnection — Uma sessão do terminal SSH aberta e conectada.
Gera: TerminalConnectionException se a conexão falhar, ou ArgumentException se ProviderType ou ConnectionProtocol for inválido.
ConexãoDoTerminal
TerminalConnection é o identificador retornado por todos os métodos de serviço. Ele fornece todas as operações de interação de terminais e implementa IDisposable.
Esse tipo implementa IDisposable. Sempre use dentro de uma instrução using ou chame Dispose() / Shutdown() explicitamente. Descartar desconecta a sessão e encerra quaisquer processos do host.
Propriedades
| Propriedade | Tipo | Description |
|---|---|---|
Connected | bool | true se a sessão estiver conectada ao host no momento. |
ConnectionString | string | A string de conexão serializada usada para estabelecer essa conexão. |
DefaultCmdOptions | CommandOptions | As opções de tempo limite e modo de espera padrão se aplicam a todas as operações quando não são explicitamente substituídas. |
Events
| Evento | Description |
|---|---|
TerminalScreenChanged | Gerado quando o conteúdo da tela do terminal é alterado. |
TerminalFieldChanged | Gerado quando um valor de campo é alterado. |
TerminalCursorChanged | Gerado quando a posição do cursor muda. |
TerminalConnectionChanged | Gerado quando o status da conexão é alterado (por exemplo, conectar/desconectar). |
TerminalErrorRaised | Gerado quando um erro de terminal ocorre de forma assíncrona. |
Métodos de leitura de tela
TerminalResultCode GetText(out string text, CommandOptions options = null)
Lê todo o conteúdo de texto visível da tela do terminal.
Parâmetros:
text(out string) — Recebe o texto em tela cheia.options(CommandOptions, opcional) — Tempo limite e modo de espera. O padrão éDefaultCmdOptions.
Retorno: TerminalResultCode.Success (ou gera TerminalConnectionException em caso de falha no modo de fluxo de trabalho codificado).
TerminalResultCode GetTextAtPosition(TerminalField criteria, int? length, out string text, CommandOptions options = null)
Lê o texto da tela a partir da posição definida por criteria. Opcionalmente limita o número de caracteres lidos.
Parâmetros:
criteria(TerminalField) — Define a posição inicial por meio deRowStart/ColStart.length(int?, opcional) — Número de caracteres a serem lidos.nulllê até o final da linha.text(out string) — Recebe o texto lido da posição.options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode GetScreenArea(TerminalField criteria, out string text, CommandOptions options = null)
Lê o texto de uma região retângulo da tela definida por criteria.
Parâmetros:
criteria(TerminalField) — Define a região usandoRowStart,ColStart,RowEnd,ColEnd.text(out string) — Recebe o texto da região.options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode GetColorAtPosition(int row, int column, out Color color, CommandOptions options = null)
Obtém a cor em primeiro plano do caractere na posição especificada.
Parâmetros:
row(int) — Linha (1-baseado).column(int) — Coluna (baseado em 1).color(out Color) — Recebe o valorSystem.Drawing.Color.options(CommandOptions, opcional) — Tempo limite e modo de espera.
ScreenData GetScreen(CommandOptions options = null)
Retorna o objeto de dados de tela bruta, incluindo todos os atributos de campo e dados de caracteres.
Parâmetros:
options(CommandOptions, opcional) — Tempo limite e modo de espera.
Retorna: ScreenData com conteúdo de tela e metadados de campo ou null se não estiver conectado.
Métodos de campo
TerminalResultCode GetField(TerminalField field, out string text, CommandOptions options = null)
Lê o conteúdo de texto de um campo identificado por seus critérios (rótulo, índice ou coordenadas).
Parâmetros:
field(TerminalField) — Identificação de campo. Defina as propriedadesLabeledBy,FollowedBy,Indexou as coordenadas.text(out string) — Recebe o texto do campo.options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode SetField(TerminalField criteria, string text, CommandOptions options = null)
Grava o texto no campo que corresponde aos critérios.
Parâmetros:
criteria(TerminalField) — Identificação de campo. Defina as propriedadesLabeledBy,FollowedBy,Indexou as coordenadas.text(string) — Texto a ser escrito.options(CommandOptions, opcional) — Tempo limite e modo de espera.
Métodos do Cursor
TerminalResultCode GetCursorPosition(out CursorPosition cursorPosition, CommandOptions options = null)
Obtém a linha e a coluna atuais do cursor do terminal.
Parâmetros:
cursorPosition(out CursorPosition) — Recebe a posição do cursor (Row,Column).options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode MoveCursor(int row, int column, CommandOptions options = null)
Move o cursor do terminal para a linha e a coluna especificadas.
Parâmetros:
row(int) — Linha de destino (1-baseado).column(int) — Coluna de destino (1-base).options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode MoveCursor(CursorPosition cursor, CommandOptions options = null)
Move o cursor usando um objeto CursorPosition .
Parâmetros:
cursor(CursorPosition) — Posição de destino.options(CommandOptions, opcional) — Tempo limite e modo de espera.
Métodos de envio de chave
TerminalResultCode SendKeys(string keys, CommandOptions options = null)
Envia uma string de texto para o terminal na posição atual do cursor.
Parâmetros:
keys(string) — Texto a ser enviado.options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode SendKeysSecure(SecureString keys, CommandOptions options = null)
Envia um SecureString para o terminal. A string é descriptografada na memória, enviada e, em seguida, o buffer não gerenciado é zerado. Use para senhas.
Parâmetros:
keys(SecureString) — Texto seguro a ser enviado.options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode SendControlKey(ControlKey key, CommandOptions options = null)
Envia uma tecla de controle (Tab, F1–F24, Transmitir/Enter, teclas de seta etc.) para o terminal.
Parâmetros:
key(ControlKey) — A chave de controle a ser enviada. Consulte enum.ControlKeyoptions(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode SendControlKey(ControlKey key, int delayMS, CommandOptions options = null)
Envia uma chave de controle e aguarda um número especificado de milissegundos antes de retornar. Útil quando o host precisa de tempo de processamento após uma chave.
Parâmetros:
key(ControlKey) — A chave de controle a ser enviada.delayMS(int) — Milissegundos para suspender após enviar a chave.options(CommandOptions, opcional) — Tempo limite e modo de espera.
Métodos de espera
TerminalResultCode WaitScreenReady(CommandOptions options = null)
Aguarda até que o teclado do terminal seja desbloqueado e a tela esteja pronta para entrada.
Parâmetros:
options(CommandOptions, opcional) — Tempo limite e modo de espera. DefinaTimeoutpara controlar o tempo de espera.
TerminalResultCode WaitText(string text, TerminalField criteria = null, bool matchCase = true, CommandOptions options = null)
Aguarda até que o texto especificado apareça na tela do terminal (ou em um campo específico se criteria for fornecido).
Parâmetros:
text(string) — Texto a ser aguardado.criteria(TerminalField, opcional) — Quando definido, aguarda o texto no campo específico. Quandonull, espera o texto em qualquer lugar na tela.matchCase(bool, opcional) — Comparação que diferencia maiúsculas de minúsculas. Padrão:true.options(CommandOptions, opcional) — Tempo limite e modo de espera.
TerminalResultCode FindTextInScreen(string text, CursorPosition startPosition, bool ignoreCase, out CursorPosition position, CommandOptions options = null)
Pesquisa a tela por uma string de texto a partir de startPosition.
Parâmetros:
text(string) — Texto a ser pesquisado.startPosition(CursorPosition) — Posição inicial da pesquisa.ignoreCase(bool) — Pesquisa sem diferenciação entre maiúsculas e minúsculas.position(out CursorPosition) — Recebe as coordenadas onde o texto foi encontrado.options(CommandOptions, opcional) — Tempo limite e modo de espera.
Retorna: TerminalResultCode.Success se encontrado; lança (ou retorna InvalidCoordinates) se não for localizada.
Ciclo de Vida da Conexão
TerminalResultCode Disconnect(CommandOptions options = null)
Desconecta-se do host, mantendo o objeto de conexão ativo (não descarta). Raramente necessário — Dispose() lida com a limpeza.
void Shutdown()
Alias de Dispose(). Desconecta, encerra os processos do host e libera recursos.
void Dispose()
Desconecta a sessão, encerra todos os processos do agente de host (x86/x64) e libera todos os recursos gerenciados e não gerenciados.
Avançado
TerminalResultCode OverrideScreenResolution(ScreenSize screenSize, CommandOptions options = null)
Substitui as dimensões da tela do terminal. Use quando o host exigir um tamanho de tela não padrão.
Parâmetros:
screenSize(ScreenSize) — Dimensões da tela de destino.options(CommandOptions, opcional) — Tempo limite e modo de espera.
Classes de opções e configuração
CommandOptions
Controla o tempo limite e o comportamento de espera na tela para operações de terminal individuais.
| Propriedade | Tipo | Padrão | Description |
|---|---|---|---|
Timeout | int | 30000 | Milissegundos para aguardar antes de gerar um erro de tempo limite. Quando 0 ou negativo, recai para o padrão do serviço de 30000 ms. |
WaitType | WaitMode | READY | Como esperar pela tela antes de executar a operação. |
// Example: 10-second timeout, wait for screen ready
var opts = new CommandOptions(WaitMode.READY, 10000);
// Example: 10-second timeout, wait for screen ready
var opts = new CommandOptions(WaitMode.READY, 10000);
ConnectionData
Objeto de configuração programático para conexões de terminais. Usado com GetConnection(ConnectionData) e GetSshConnection().
| Propriedade | Tipo | Padrão | Description |
|---|---|---|---|
ProviderType | TerminalProviderType | UiPathNew | Provedor de emulador de terminal. Use UiPathNew para conexões TCP/SSH diretas. |
ConnectionType | ConnectionType | Profile | Como a conexão é estabelecida: Address (host/porta — necessário para UiPathNew), Profile (arquivo de perfil do provedor), LowLevel (EHLLAPI). |
ConnectionProtocol | CommunicationType | TELNET | Protocolo: TELNET, SSH ou HPVT. |
TerminalType | TerminalType | Terminal3270 | Tipo de emulação de terminal. |
Host | string | Hostname ou endereço IP do host de destino. | |
Port | int | 23 | Porta TCP. O padrão é 23 (Telnet); O SSH normalmente usa 22. |
ShowTerminal | bool | true | Se a janela do terminal deve ser exibida (se compatível com o provedor). |
EnableSSL | bool | false | Habilite SSL/TLS para a conexão. |
Profile | string | Caminho para o arquivo de perfil do provedor (para provedores baseados em perfil: Attachmate, IBM, BlueZone, etc.). | |
InProcessMode | bool | false | Execute o provedor de terminais em processo (apenas Generic/EHLLAPI). |
AttachExisting | bool | false | Anexe a uma sessão de terminal já em execução. Valor true disponível apenas para o provedor Attachmate |
ProxyType | ProxyType | None | Tipo de proxy (Nenhum, HTTP, SOCKS4, SOCKS5). |
ProxyHost | string | Nome do host do servidor proxy. | |
ProxyPort | int | Porta do servidor proxy. | |
ProxyUser | string | Nome de usuário de autenticação de proxy. | |
ProxyPassword | string | Senha de autenticação de proxy. | |
InternalEncoding | string | Substituição de codificação de caracteres (por exemplo, "IBM037" para EBCDIC). | |
EhllDll | string | Caminho para a DLL do EHLLAPI (provedor genérico). | |
EhllFunction | string | "hllapi" | Nome da função de ponto de entrada do EHLLAPI. |
EhllSession | string | "A" | Identificador de sessão do EHLLAPI. |
EhllEnhanced | bool | true | Use o modo EHLLAPI aprimorado. |
EhllEncoding | string | Codificação de caracteres usada para comunicação de texto EHLLAPI (Provedor genérico). O padrão é a codificação configurada do provedor, se não estiver definida ou não for reconhecida. | |
EhllBasicMode | bool | false | Quando true, desabilita a análise de campo na recuperação de tela. Os dados da tela são retornados apenas como texto bruto, sem nenhum metadado de campo. Use para desempenho quando o acesso no nível do campo não for necessário (Provedor genérico). |
LuName | string | Para 3270/5250: o nome da Unidade Lógica (LU) SNA a ser solicitada do host. Para VT/Wyse/Linux: a string de resposta de resposta do terminal (use ^M para retorno de carro). Não tem efeito em conexões não SNA ou não VT. | |
TerminalModel | int | 0 | Identificador do modelo do terminal. Use o valor enum para o ativo TerminalType: TerminalModes3270 (3270), TerminalModes5250 (5250, padrão para IBM_5250_3477_FC quando 0), TTVtTermId (VT), TerminalModesHP (HAP), TerminalModesWyse (Wyse), TerminalModesLinux (Linux). |
TerminalField
Identifica um campo ou região da tela para operações de leitura/gravação.
| Propriedade | Tipo | Description |
|---|---|---|
RowStart | int | Linha inicial (com base em 1 ou -1 para não definida). |
ColStart | int | Coluna Inicial (com base em 1 ou -1 para não definida). |
RowEnd | int | Linha final para operações de área (-1 para desdefinir). |
ColEnd | int | Coluna final para operações de área (-1 para não definir). |
LabeledBy | string | Texto do rótulo que precede o campo. |
FollowedBy | string | Texto do rótulo que segue o campo. |
Index | int | Índice de campo baseado em zero (-1 para unset). |
CursorPosition
Representa um local de linha/coluna na tela do terminal.
| Propriedade | Tipo | Description |
|---|---|---|
Row | int | Linha (baseado em 1). Padrão: 1. |
Column | int | Coluna (baseado em 1). Padrão: 1. |
Referência enum
WaitMode: NONE, READY, COMPLETE
NONE— Não aguarde; execute imediatamente.READY— Aguarde o desbloqueio do teclado antes de executar.COMPLETE— Aguarde a chegada de todos os dados da tela antes de executar.
TerminalProviderType: UiPathNew, Attachmate, IBM, BlueZone, Generic, AttachmateExtra, ReflectionUnix, ReflectionIBM, Rumba, TandemHLL
UiPathNew— Conexão TCP/SSH direta sem um emulador de terceiros. Compatível com Telas, SSH e iPhones.TandemHLL— Sessões de host Tandem/NonStop por meio do THLLAPI (THLLW3.DLL/THLLW6.DLL, Attachmate Reflection 6530). UsaConnectionType.LowLevele os mesmos camposEhll*queGeneric. Os dados de atributo de cor não são compatíveis;GetColorAtPositionsempre retornaColor.LightGreen.
CommunicationType: TELNET, SSH, HPVT
ConnectionType: Address, Profile, LowLevel
Address— Conecte-se por host/porta. Necessário ao usarProviderType.UiPathNew.Profile— Conecte-se usando um arquivo de perfil específico do provedor (caminho definido por meio deProfile).LowLevel— Conecte-se por meio do EHLLAPI (Provedor genérico) ou THLLAPI (Provedor TandemHLL).
TerminalType: Terminal3270, Terminal5250, TerminalVT, TerminalHP, TerminalANSI, TerminalT653X, TerminalSCOANSI, TerminalWYSE, TerminalLinux
ControlKey (valores selecionados): Transmit, Tab, BackTab, Return, Escape, BackSpace, Home, End, Insert, Delete, PageUp, PageDown, Up, Down, Left, Right, F1–F24, Shift_F1–Shift_F12, Ctrl_F1–Ctrl_F12, Alt_F1–Alt_F12, PA1–PA3, Clear, Reset, Attention, EraseEOF, EraseInput, CursorSelect, FieldPlus, FieldMinus, FieldExit, Ctrl_A–Ctrl_Z, Tandem_Horizontal_Tab, Tandem_Vertical_Tab
TerminalModes3270 (use com TerminalType.Terminal3270): IBM_3270_3278_2 (0), IBM_3270_3278_3 (1), IBM_3270_3278_4 (2), IBM_3270_3278_5 (3), IBM_3270_3279_2 (4), IBM_3270_3279_3 ( 5), IBM_3270_3279_4 (6), IBM_3270_3279_5 (7)
TerminalModes5250 (use com TerminalType.Terminal5250): IBM_5250_3179_2 (54), IBM_5250_3179_220 (60), IBM_5250_3180_2 (52), IBM_5250_3196_A1 (53), IBM_5250_3477_FG (61), IBM_5250_3477_FC ( 62), IBM_5250_5251_1 (55), IBM_5250_5251_11 (56), IBM_5250_5252 (57), IBM_5250_5291_1 (58), IBM_5250_5292_2 (59), IBM_5250_5555_C01 (64), IBM_5250_5555_B01 (65 ), IBM_5250_Printer (63)
TTVtTermId (use com TerminalType.TerminalVT): VT100 (0), VT101 (1), VT102 (2), VT220 (3), VT240 (4), VT320 ( 5), VT340 (6), VT420 (7), VT100W (10), VT101W (11), VT102W (12), VT220w (13), VT240W (14 ), VT320W (15), VT340W (16), VT420W (17), VT100M (20), VT101M (21), VT102M (22), VT220M (23) , VT240M (24), VT320M (25), VT340M (26), VT420M (27)
TerminalModesHP (use com TerminalType.TerminalHP): HP_2372A (0), HP_70092 (1), HP_70094 (2)
TerminalModesWyse (use com TerminalType.TerminalWYSE): WYSE_50_24_80 (0), WYSE_50_24_132 (10), WYSE_60_24_80 (1), WYSE_60_24_132 (11), WYSE_60_42_80 (41), WYSE_60_42_132 ( 51), WYSE_60_43_80 (61), WYSE_60_43_132 (71), WYSE_350_24_80 (2), WYSE_350_24_132 (12)
TerminalModesLinux (use com TerminalType.TerminalLinux): Linux_24_80 (0), Linux_24_132 (1), Linux_36_80 (2), Linux_36_132 (3), Linux_48_80 (4), Linux_48_132 (5)
Padrões comuns
Faça login em um host 3270 e leia um campo
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
Host = "mainframe.corp.com",
Port = 23,
TerminalType = TerminalType.Terminal3270,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.TELNET
};
using var conn = terminal.GetConnection(connData);
// Wait for login screen, then type credentials
conn.WaitText("ENTER USERID", options: new CommandOptions(WaitMode.READY, 30000));
conn.SetField(new TerminalField { LabeledBy = "USERID" }, "myuser");
conn.SetField(new TerminalField { LabeledBy = "PASSWORD" }, "mypassword");
conn.SendControlKey(ControlKey.Transmit);
// Wait for main menu
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Read data
conn.GetText(out string screen);
Log(screen);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
Host = "mainframe.corp.com",
Port = 23,
TerminalType = TerminalType.Terminal3270,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.TELNET
};
using var conn = terminal.GetConnection(connData);
// Wait for login screen, then type credentials
conn.WaitText("ENTER USERID", options: new CommandOptions(WaitMode.READY, 30000));
conn.SetField(new TerminalField { LabeledBy = "USERID" }, "myuser");
conn.SetField(new TerminalField { LabeledBy = "PASSWORD" }, "mypassword");
conn.SendControlKey(ControlKey.Transmit);
// Wait for main menu
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Read data
conn.GetText(out string screen);
Log(screen);
}
Conexão SSH com credenciais seguras
[Workflow]
public void Execute()
{
var controlKeyDelayMS = 1000;
var connData = new ConnectionData
{
Host = "unix-server.corp.com",
Port = 22,
TerminalType = TerminalType.TerminalVT,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.SSH
};
// sshPwd is a SecureString variable, for example, from Get Credential activity
using var conn = terminal.GetSshConnection(connData, sshUser: "deploy", sshPassword: sshPwd);
conn.WaitText("$", options: new CommandOptions(WaitMode.NONE, 10000));
conn.SendKeys("ls -la /var/log");
conn.SendControlKey(ControlKey.Transmit, controlKeyDelayMS);
conn.GetText(out string output);
Log(output);
}
[Workflow]
public void Execute()
{
var controlKeyDelayMS = 1000;
var connData = new ConnectionData
{
Host = "unix-server.corp.com",
Port = 22,
TerminalType = TerminalType.TerminalVT,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.SSH
};
// sshPwd is a SecureString variable, for example, from Get Credential activity
using var conn = terminal.GetSshConnection(connData, sshUser: "deploy", sshPassword: sshPwd);
conn.WaitText("$", options: new CommandOptions(WaitMode.NONE, 10000));
conn.SendKeys("ls -la /var/log");
conn.SendControlKey(ControlKey.Transmit, controlKeyDelayMS);
conn.GetText(out string output);
Log(output);
}
Navegar em um menu por posição de campo (EHLLAPI/Provedor genérico)
Use ao automatizar uma sessão de terminal gerenciada por um emulador de terceiros que expõe uma interface EHLLAPI (por exemplo, uma sessão em execução do IBM PCOMM ou BlueZone acessada por meio de sua EHLLAPI DLL).
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.Generic,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\IBM\Personal Communications\PCSHLL32.DLL",
EhllFunction = "hllapi",
EhllSession = "A",
EhllEnhanced = true
};
using var conn = terminal.GetConnection(connData);
// Move cursor to the Option field and type a menu choice
conn.MoveCursor(row: 4, column: 14);
conn.SendKeys("2");
conn.SendControlKey(ControlKey.Transmit);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 20000));
// Read a region of the response screen (rows 5-20, full width)
var region = new TerminalField { RowStart = 5, ColStart = 1, RowEnd = 20, ColEnd = 80 };
conn.GetScreenArea(region, out string result);
Log(result);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.Generic,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\IBM\Personal Communications\PCSHLL32.DLL",
EhllFunction = "hllapi",
EhllSession = "A",
EhllEnhanced = true
};
using var conn = terminal.GetConnection(connData);
// Move cursor to the Option field and type a menu choice
conn.MoveCursor(row: 4, column: 14);
conn.SendKeys("2");
conn.SendControlKey(ControlKey.Transmit);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 20000));
// Read a region of the response screen (rows 5-20, full width)
var region = new TerminalField { RowStart = 5, ColStart = 1, RowEnd = 20, ColEnd = 80 };
conn.GetScreenArea(region, out string result);
Log(result);
}
Aguarde o processamento e leia um campo de resultado (IBM Personal Communications /perfil salvo)
Use quando a conexão estiver pré-configurada em um arquivo de espaço de trabalho do IBM PCOMM (.ws). O PCOMM deve estar instalado na máquina do Robô.
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.IBM,
ConnectionType = ConnectionType.Profile,
Mode = ConnectionMode.Play,
ShowTerminal = true,
Profile = @"C:\PComm\Profiles\MainframeSession.ws"
};
using var conn = terminal.GetConnection(connData);
// Submit a transaction
conn.SetField(new TerminalField { LabeledBy = "TRAN CODE" }, "INQ01");
conn.SetField(new TerminalField { LabeledBy = "ACCOUNT " }, accountNumber);
conn.SendControlKey(ControlKey.Transmit);
// Wait for either success or error indicator
var opts = new CommandOptions(WaitMode.READY, 30000);
conn.WaitScreenReady(opts);
// Check status field
conn.GetField(new TerminalField { LabeledBy = "STATUS " }, out string status);
if (status.Trim() == "00")
{
conn.GetField(new TerminalField { LabeledBy = "BALANCE " }, out string balance);
Log($"Balance: {balance}");
}
else
{
conn.GetText(out string screen);
throw new Exception($"Transaction failed. Status: {status}. Screen: {screen}");
}
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.IBM,
ConnectionType = ConnectionType.Profile,
Mode = ConnectionMode.Play,
ShowTerminal = true,
Profile = @"C:\PComm\Profiles\MainframeSession.ws"
};
using var conn = terminal.GetConnection(connData);
// Submit a transaction
conn.SetField(new TerminalField { LabeledBy = "TRAN CODE" }, "INQ01");
conn.SetField(new TerminalField { LabeledBy = "ACCOUNT " }, accountNumber);
conn.SendControlKey(ControlKey.Transmit);
// Wait for either success or error indicator
var opts = new CommandOptions(WaitMode.READY, 30000);
conn.WaitScreenReady(opts);
// Check status field
conn.GetField(new TerminalField { LabeledBy = "STATUS " }, out string status);
if (status.Trim() == "00")
{
conn.GetField(new TerminalField { LabeledBy = "BALANCE " }, out string balance);
Log($"Balance: {balance}");
}
else
{
conn.GetText(out string screen);
throw new Exception($"Transaction failed. Status: {status}. Screen: {screen}");
}
}
Detectar uma cor de campo para lógica condicional
[Workflow]
public void Execute()
{
var conn = terminal.GetConnection(connectionString);
try
{
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 10000));
// Check if the status indicator at row 24, col 1 is red (error)
conn.GetColorAtPosition(24, 1, out Color statusColor);
if (statusColor == Color.Red)
{
conn.GetText(out string errorScreen);
Log($"Error screen detected: {errorScreen}");
}
else
{
conn.GetField(new TerminalField { Index = 0 }, out string firstField);
Log($"First field: {firstField}");
}
}
finally
{
conn.Dispose();
}
}
[Workflow]
public void Execute()
{
var conn = terminal.GetConnection(connectionString);
try
{
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 10000));
// Check if the status indicator at row 24, col 1 is red (error)
conn.GetColorAtPosition(24, 1, out Color statusColor);
if (statusColor == Color.Red)
{
conn.GetText(out string errorScreen);
Log($"Error screen detected: {errorScreen}");
}
else
{
conn.GetField(new TerminalField { Index = 0 }, out string firstField);
Log($"First field: {firstField}");
}
}
finally
{
conn.Dispose();
}
}
Conecte-se a um host Tandem/NonStop via THLLAPI
Use ao automatizar uma sessão Tandem/NonStop em execução por meio do Attachmate Reflection 6530. O ponto de entrada EhllFunction para a THLLAPI é "thllapi" (não "hllapi"). Os dados do atributo de cor não estão disponíveis para este provedor.
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.TandemHLL,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\Attachmate\Reflection\THLLW6.DLL",
EhllFunction = "thllapi",
EhllSession = "A"
};
using var conn = terminal.GetConnection(connData);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Type a command and submit with Horizontal Tab to move between fields
conn.SetField(new TerminalField { LabeledBy = "LOGON:" }, "myuser");
conn.SendControlKey(ControlKey.Tandem_Horizontal_Tab);
conn.SetField(new TerminalField { LabeledBy = "PASSWORD:" }, "mypassword");
conn.SendControlKey(ControlKey.Return);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
conn.GetText(out string screen);
Log(screen);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.TandemHLL,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\Attachmate\Reflection\THLLW6.DLL",
EhllFunction = "thllapi",
EhllSession = "A"
};
using var conn = terminal.GetConnection(connData);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Type a command and submit with Horizontal Tab to move between fields
conn.SetField(new TerminalField { LabeledBy = "LOGON:" }, "myuser");
conn.SendControlKey(ControlKey.Tandem_Horizontal_Tab);
conn.SetField(new TerminalField { LabeledBy = "PASSWORD:" }, "mypassword");
conn.SendControlKey(ControlKey.Return);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
conn.GetText(out string screen);
Log(screen);
}
- Namespaces Importados Automaticamente
- Visão Geral do Serviço
- Métodos de conexão
TerminalConnection GetConnection(string connectionString)TerminalConnection GetConnection(ConnectionData connectionData)TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)- ConexãoDoTerminal
- Propriedades
- Events
- Métodos de leitura de tela
- Métodos de campo
- Métodos do Cursor
- Métodos de envio de chave
- Métodos de espera
- Ciclo de Vida da Conexão
- Avançado
- Classes de opções e configuração
CommandOptionsConnectionDataTerminalFieldCursorPosition- Referência enum
- Padrões comuns
- Faça login em um host 3270 e leia um campo
- Conexão SSH com credenciais seguras
- Navegar em um menu por posição de campo (EHLLAPI/Provedor genérico)
- Aguarde o processamento e leia um campo de resultado (IBM Personal Communications /perfil salvo)
- Detectar uma cor de campo para lógica condicional
- Conecte-se a um host Tandem/NonStop via THLLAPI