Studio
2024.10
False
Guide de l’utilisateur de Studio
Last updated 28 juin 2024

Plug-in distant UiPath

Vue d'ensemble (Overview)

Avec l’extension UiPath® pour le bureau à distance Windows, vous pouvez générer de manière native des sélecteurs sur des connexions RDP gérées par des applications distantes personnalisées qui utilisent le contrôle Microsoft RDP ActiveX.

Par exemple, lorsqu'une application personnalisée ouvre l'application Calculatrice (Calculator) à partir du serveur, le sélecteur est :

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

Une fois les étapes décrites ci-dessous terminées, le sélecteur devient :

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

Cela vous permet d'automatiser l'application distante.

Installer l’extension UiPath pour le bureau à distance et les applications Microsoft

  1. Tout d'abord, suivez les étapes décrites via Extension pour le bureau à distance et les applications Microsoft (Extension for Microsoft Remote Desktop and Apps) pour installer l'extension.
  2. L'extension met à jour le registre Software\Microsoft\Terminal Server Client\Default\AddIns à partir de :
    • LocalMachine : si l'extension a été installée pour l'ensemble du système
    • CurrentUser : si l'extension a été installée pour un seul utilisateur
  3. Vérifiez l'éditeur du registre pour vous assurer que l'extension a bien modifié le registre. Voici à quoi cela devrait ressembler :


Mettez à jour la configuration des DLL des plug-ins dans votre application personnalisée

  1. Obtenez une référence à la configuration des DLL des plug-ins.
  2. Obtenez les chemins d'accès aux DLL de l’extension UiPath pour le bureau à distance Windows à partir de la sous-clé Nom (Nom) de la clé de registre Software\Microsoft\Terminal Server Client\Default\AddIns, à partir de :
    • LocalMachine : si l'extension a été installée pour l'ensemble du système
    • CurrentUser : si l'extension a été installée pour un seul utilisateur
  3. Créez une chaîne séparée par des virgules avec les chemins d'accès aux DLL obtenus à l'étape ci-dessus.
  4. Mettez à jour la configuration des DLL des plug-ins avec la chaîne nouvellement calculée.

Consultez la documentation du contrôle ActiveX du bureau à distance de Microsoft pour plus de détails.

Dans l'extrait de code ci-dessous, vous pouvez voir un exemple de la façon de définir la configuration des DLL des plug-ins avec des valeurs lues à partir du registre :

// 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;
}
Remarque : Pour générer les sélecteurs natifs sur les connexions RDP, vous devez également déployer le composant UiPath Remote Runtime sur la machine distante, comme expliqué sur la page À propos de UiPath Remote Runtime (About UiPath Remote Runtime). Vous pouvez obtenir le programme d'installation UiPathRemoteRuntime.msi en le demandant ici.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.