Studio
2023.4
falso
Imagem de fundo do banner
Guia do usuário do Studio
Última atualização 26 de abr de 2024

UiPath Remote Plugin

Visão geral

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.

Instale a extensão para UiPath Microsoft Remote Desktop and Apps

  1. Primeiro, siga as etapas descritas na Extensão para Microsoft Remote Desktop and Apps para instalar a extensão.
  2. 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 sistema
    • CurrentUser - se a extensão foi instalada para um único usuário
  3. Verifique o Editor do Registro para garantir que a extensão mudou o registro. É assim que ele deve se parecer:


Atualize a configuração PluginsDLLs em seu aplicativo personalizado

  1. Obtenha uma referência à configuração do PluginDLLs.
  2. 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 sistema
    • CurrentUser - se a extensão foi instalada para um único usuário
  3. Construa uma string separada por vírgula com os caminhos do DLL obtidos na etapa acima.
  4. 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;
}
Observação: para gerar seletores nativos sobre conexões RDP, você também precisa implantar o componente UiPath Remote Runtime na máquina de Área de Trabalho Remota, conforme explicado em Sobre o UiPath Remote Runtime. Você pode obter o instalador do UiPathRemoteRuntime.msi solicitando-o aqui.

Was this page helpful?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Logotipo branco da Uipath
Confiança e segurança
© 2005-2024 UiPath. All rights reserved.