Studio
2023.4
False
Image de fond de la bannière
Guide de l’utilisateur de Studio
Dernière mise à jour 26 avr. 2024

Plug-in distant UiPath

Vue d'ensemble (Overview)

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.

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.