Studio
2022.10
バナーの背景画像
Studio ガイド
最終更新日 2024年4月26日

UiPath リモート プラグイン

概要

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.

たとえば、カスタム アプリケーションがサーバーから電卓アプリケーションを開く場合、セレクターは次のようになります。

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

以下の手順を完了すると、セレクターは次のようになります。

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

これにより、リモート アプリケーションの操作を自動化できます。

UiPath Microsoft リモート デスクトップとアプリ拡張機能をインストールする

  1. 最初に、「Microsoft リモート デスクトップとアプリ向け拡張機能」に記載されている手順に従って、拡張機能をインストールします。
  2. この拡張機能により、Software\Microsoft\Terminal Server Client\Default\AddIns レジストリが以下のいずれかから更新されます。
    • LocalMachine - 拡張機能がシステム全体用にインストールされている場合
    • CurrentUser - 拡張機能が単一ユーザー用にインストールされている場合
  3. レジストリ エディターで、拡張機能によってレジストリが変更されていることを確認します。レジストリは次のようになっている必要があります。


カスタム アプリケーションの PluginsDLLs 設定を更新する

  1. PluginDLLs 設定への参照を取得します。
  2. UiPath Windows リモート デスクトップ拡張機能の DLL のパスを Software\Microsoft\Terminal Server Client\Default\AddIns レジストリ キーの Name サブキーから取得します。次のいずれかになります。
    • LocalMachine - 拡張機能がシステム全体用にインストールされている場合
    • CurrentUser - 拡張機能が単一ユーザー用にインストールされている場合
  3. 上記の手順で取得した DLL パスを使用して、コンマ区切りの文字列を作成します。
  4. 新たに計算された文字列で PluginDLLs 設定を更新します。

詳細については、Microsoft のリモート デスクトップ ActiveX コントロールのドキュメントをご覧ください。

以下のコード スニペットでは、レジストリから読み取った値で 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;
}…
// 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;
}
注: RDP 接続を介してネイティブ セレクターを生成するには、「UiPath リモート ランタイムについて」で説明しているようにリモート デスクトップ マシンに UiPath リモート ランタイム コンポーネントもデプロイする必要があります。UiPathRemoteRuntime.msi インストーラーは、こちらでリクエストして入手できます。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.