- Notas de Versão
- Introdução
- Configuração e Instalação
- Projetos de automação
- Sobre a publicação de projetos de automação
- Projetando automações
- Como gerenciar pacotes de atividades
- Como definir as configurações do projeto de atividades
- Como assinar pacotes
- Governança
- Como importar entidades
- Experiência de Criação Moderna
- Vincular um projeto a uma ideia no Automation Hub
- Usando o Gerenciador de dados
- Dependências
- Tipos de fluxos de trabalho
- Comparação de arquivos
- Melhores Práticas de Automação
- Integração de controle de origem
- Depuração
- A ferramenta de diagnóstico
- Analisador de Fluxo de Trabalho
- Sobre o Analisador de Fluxo de Trabalho
- STN MG-001 - Convenção de nomenclatura de variáveis
- STN MG-002 - Convenção de nomenclatura de argumentos
- STN MG-004 - Duplicação de Nome de Exibição
- STN MG-005 - Variável substitui variável
- STN MG-006 - Variável substitui argumento
- STN MG-008 - Comprimento de variável excedido
- STN MG-009 - Variáveis Catablema de prefixo
- STN MG-011 - Argumentos Catablema de prefixo
- STN MG-012 - Valores padrão de argumentos
- STN MG-016 - Comprimento do argumento excedido
- SR-DB-002 - Contagem alta de argumentos
- SR-DB-003 - Esvaziar bloco catechu
- SR-DB-007 - Múltiplas camadas Com fluxograma
- SR-DB-020 - Propriedades de saída indefinidas
- SR-DB-023 - Fluxo de trabalho vazio
- SR-DB-024 - Verificação da atividade Persistente
- SR-DB-025 - Pré-requisito de serialidade de variáveis
- SR-DB-026 - Uso da atividade Dela
- SR-DB-027 - Melhores práticas de persistência
- SR-DB-028 - Pré-requisito de serialidade de argumentos
- SR-US-005 - Argumentos de atividades embutidos em código
- SR-US-009 - Variáveis não utilizadas
- SR-US-010 - Dependências não utilizadas
- SR-US-014 - Restrições de pacotes
- SR-US-020 - Mensagens de logue mínimas
- SR-US-024 - Não utilizado e postergado
- SR-US-025 - Uso incorreto do valor salvo
- SR-US-026 - Restrições da atividade
- SR-US-027 - Pacotes necessários
- ST-USG-28 — restringir modelos de invocação de arquivos
- ST-USG-032 — rótulos obrigatórios
- ST-USG-034 — URL do Automation Hub
- Variáveis
- Argumentos
- Namespaces Importados
- Automação assistida baseada em gatilho
- Gravação
- Elementos de Interface Gráfica
- Fluxo de controle
- Seletores
- Repo. de Objetos
- Extração de Dados
- Automação de imagem e texto
- Automação de tecnologias Citrino
- Automação RDP
- Automação da Salesforce
- Automação SAP
- Automação do Varear Horizonte
- Geração de logs
- A ferramenta ScreenScrapeJavaSupport
- O protocolo Servodrive
- Test Suite — Studio
- Extensões
- Solução de problemas
- Sobre a solução de problemas
- Suporte e limitações do Microsoft Apo-V
- Solução de problemas do Internet Explorer x64
- Problemas do Microsoft Office
- Como identificar elementos de EU em PDF com opções de acessibilidade
- Reparando o suporte da Active Accessibility
- Automação de aplicativos em execução com um usuário diferente do Windows
- Validation of large Windows-legacy projects takes longer than expected
UiPath Remote Plugin
With the UiPath® Extension for Windows Remote Desktop you can natively generate selectors over RDP connections handled by custom remote applications that use the Microsoft RDP ActiveX control.
Por exemplo, quando um aplicativo personalizado abre o aplicativo Calculator a partir do servidor, o seletor é:
<wnd app='customapp.exe' cls='RAIL_WINDOW' title='Calculator (Remote)' />
Após concluir as etapas descritas abaixo, o seletor torna-se:
<wnd app='win32calc.exe' cls='CalcFrame' isremoteapp='1' title='Calculator' />
Isso permite que você automatize o aplicativo remoto.
- Primeiro, siga as etapas descritas na Extensão para Microsoft Remote Desktop and Apps para instalar a extensão.
-
A extensão atualiza o registro
Software\Microsoft\Terminal Server Client\Default\AddIns
a partir de:LocalMachine
- se a extensão foi instalada para todo o sistemaCurrentUser
- se a extensão foi instalada para um único usuário
- Verifique o Editor do Registro para garantir que a extensão mudou o registro. É assim que ele deve se parecer:
- Obtenha uma referência à configuração do PluginDLLs.
-
Obtenha os caminhos dos DLLs do UiPath Extension for Windows Remote Desktop a partir da subchave
Software\Microsoft\Terminal Server Client\Default\AddIns
da chave do registro, a partir de:LocalMachine
- se a extensão foi instalada para todo o sistemaCurrentUser
- se a extensão foi instalada para um único usuário
- Construa uma string separada por vírgula com os caminhos do DLL obtidos na etapa acima.
- Atualize a configuração do PluginDLLs com a string recém-computada.
Consulte a documentação de controle da Área de Trabalho remota ActiveX da Microsoft para obter mais detalhes.
No snippet de código abaixo, você pode ver um exemplo de como definir a configuração do PluginDLLs com valores lidos a partir do registro:
…
// Setting the PluginDlls configuration
mstscActiveX.AdvancedSettings7.PluginDlls = GetInstalledPluginDlls();
…
// Getting the DLL paths from the Registry
private string GetInstalledPluginDlls()
{
List<string> pluginDllsPerMachine = GetInstalledPluginDllsFromKey(Registry.LocalMachine);
List<string> pluginDllsPerUser = GetInstalledPluginDllsFromKey(Registry.CurrentUser);
var allPlugins = pluginDllsPerMachine.Concat(pluginDllsPerUser).ToList();
return string.Join(",", allPlugins);
}
private List<string> GetInstalledPluginDllsFromKey(RegistryKey key)
{
List<string> pluginDlls = new List<string>();
try
{
using var regAddIns = key.OpenSubKey(@"Software\Microsoft\Terminal Server Client\Default\AddIns", false);
if (regAddIns != null)
{
foreach (var regAddIn in regAddIns.GetSubKeyNames())
{
using var regAddin = regAddIns.OpenSubKey(regAddIn, false);
var addInName = regAddin.GetValue("Name");
if (addInName != null && addInName.ToString().ToLower().EndsWith(".dll"))
{
pluginDlls.Add(addInName.ToString());
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return pluginDlls;
}
…
// Setting the PluginDlls configuration
mstscActiveX.AdvancedSettings7.PluginDlls = GetInstalledPluginDlls();
…
// Getting the DLL paths from the Registry
private string GetInstalledPluginDlls()
{
List<string> pluginDllsPerMachine = GetInstalledPluginDllsFromKey(Registry.LocalMachine);
List<string> pluginDllsPerUser = GetInstalledPluginDllsFromKey(Registry.CurrentUser);
var allPlugins = pluginDllsPerMachine.Concat(pluginDllsPerUser).ToList();
return string.Join(",", allPlugins);
}
private List<string> GetInstalledPluginDllsFromKey(RegistryKey key)
{
List<string> pluginDlls = new List<string>();
try
{
using var regAddIns = key.OpenSubKey(@"Software\Microsoft\Terminal Server Client\Default\AddIns", false);
if (regAddIns != null)
{
foreach (var regAddIn in regAddIns.GetSubKeyNames())
{
using var regAddin = regAddIns.OpenSubKey(regAddIn, false);
var addInName = regAddin.GetValue("Name");
if (addInName != null && addInName.ToString().ToLower().EndsWith(".dll"))
{
pluginDlls.Add(addInName.ToString());
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return pluginDlls;
}