Studio
2023.4
False
Imagen de fondo del banner
Guía de usuario de Studio
Última actualización 26 de abr. de 2024

Plugin remoto de UiPath

Información general

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 ejemplo, cuando una aplicación personalizada abre la aplicación Calculadora desde el servidor, el selector es:

<wnd app='customapp.exe' cls='RAIL_WINDOW' title='Calculator (Remote)' />

Tras completar los pasos descritos a continuación, el selector se convierte en:

<wnd app='win32calc.exe' cls='CalcFrame' isremoteapp='1' title='Calculator' />

Esto te permite automatizar la aplicación remota.

Instala la extensión de UiPath para el escritorio remoto y las aplicaciones de Microsoft.

  1. Primero, sigue los pasos descritos en Extensión para el escritorio remoto y las aplicaciones de Microsoft para instalar la extensión.
  2. La extensión actualiza el registro Software\Microsoft\Terminal Server Client\Default\AddIns desde:
    • LocalMachine: si la extensión fue instalada para el sistema completo
    • CurrentUser: si la extensión fue instalada por un único usuario
  3. Comprueba el Editor del registro para asegurarte de que la extensión ha cambiado el registro. Este es el aspecto que debería tener:


Actualiza la configuración PluginsDLLs en tu aplicación personalizada

  1. Obtén una referencia a la configuración PluginDLLs.
  2. Obtén las rutas de la extensión UiPath para DLL del escritorio remoto de Windows desde la subclave Nombre de la clave del registro Software\Microsoft\Terminal Server Client\Default\AddIns, desde:
    • LocalMachine: si la extensión fue instalada para el sistema completo
    • CurrentUser: si la extensión fue instalada por un único usuario
  3. Crea una string separada por comas con las rutas de las DLL obtenidas en el paso anterior.
  4. Actualiza la configuración PluginDLLs con la string recién calculada.

Consulta la documentación de control ActiveX del escritorio remoto de Microsoft para obtener más detalles.

En el fragmento de código a continuación puedes ver un ejemplo de cómo establecer la configuración PluginDLLs con valores leídos desde el 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;
}
Aviso: Para generar selectores nativos a través de conexiones RDP, también necesitas implementar el componente Remote Runtime de UiPath en la máquina de Escritorio remoto, tal y como se explica en Acerca del runtime remoto de UiPath. Puedes obtener el instalador UiPathRemoteRuntime.msi solicitando aquí.

Was this page helpful?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.