studio
2024.10
true
Guía de usuario de Studio
Last updated 30 de oct. de 2024

Configura el complemento remoto de UiPath para aplicaciones remotas personalizadas

Información general

Con la Extensión para el escritorio remoto de Windows, puedes generar de forma nativa selectores sobre conexiones RDP gestionadas por aplicaciones remotas personalizadas que utilizan el control ActiveX de Microsoft RDP.

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;
}
Nota: para generar selectores nativos sobre conexiones RDP, también debes implementar el componente UiPath Remote Runtime en la máquina de escritorio remoto, como se explica en Acerca de UiPath Remote Runtime.
El UiPathRemoteRuntime.msiinstalador se puede descargar desde:
  • Descargas de productos en Customer Portal de UiPath
  • Centro de recursos en Automation Cloud de UiPath. Para acceder al Centro de recursos, inicia sesión en tu organización de Automation Cloud y haz clic en el botón de ayuda en la barra de navegación.

¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.