studio
2023.4
false
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。
UiPath logo, featuring letters U and I in white
Studio ガイド
Last updated 2024年11月4日

UiPath リモート プラグインをカスタム リモート アプリケーション用に設定する

概要

Windows リモート デスクトップ拡張機能を使用すると、Microsoft RDP ActiveX コントロールを使用するカスタム リモート アプリケーションによって処理される RDP 接続を介してセレクターをネイティブに生成できます。

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

<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 インストーラーは、以下の場所からダウンロードできます。
  • UiPath Customer Portal[製品ダウンロード] ページ
  • UiPath Automation Cloud[リソース センター][リソース センター] にアクセスするには、お使いの Automation Cloud の組織にログインし、左側のナビゲーション バーにある [ヘルプ] ボタンをクリックします。

このページは役に立ちましたか?

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