Studio
2024.10
falso
Guia do usuário do Studio
Last updated 28 de jun de 2024

Plug-in remoto da UiPath

Visão geral

Com a Extensão UiPath® para Área de Trabalho Remota do Windows, você pode gerar nativamente seletores sobre conexões RDP tratadas por aplicativos remotos personalizados que usam o controle ActiveX de RDP da Microsoft.

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.