- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 编码自动化
- 基于触发器的 Attended 自动化
- 控制流程
- 对象存储库
- 日志记录
- ScreenScrapeJavaSupport 工具
- Studio 测试
- 扩展程序
- 关于扩展程序
- SetupExtensions 工具
- 为自定义远程应用程序配置 UiPath 远程插件
- 故障排除
- VMware Horizon 版扩展程序
- SAP 解决方案管理器插件
- Excel 加载项
- 故障排除

Studio 用户指南
为自定义远程应用程序配置 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 远程桌面和 Apps 扩展程序
-
首先,请按照 Microsoft 远程桌面和应用程序扩展程序中所述的步骤安装扩展程序。
-
该扩展程序通过以下任一方式更新
Software\Microsoft\Terminal Server Client\Default\AddIns注册表:LocalMachine- 如果已为整个系统安装扩展程序CurrentUser- 如果扩展程序是为单个用户安装的
-
检查注册表编辑器,确保扩展程序更改了注册表。其外观应如下所示:

更新自定义应用程序中的 PluginsDLL 配置
-
获取对 PluginDLL 配置的引用。
-
从
Software\Microsoft\Terminal Server Client\Default\AddIns注册表项的“名称”子项中获取 UiPath Windows 远程桌面 DLL 文件路径扩展程序,方法可选择以下其一:LocalMachine- 如果已为整个系统安装扩展程序CurrentUser- 如果扩展程序是为单个用户安装的
-
使用在上述步骤中获得的 DLL 文件路径构建一个以逗号分隔的字符串。
-
使用新计算的字符串更新 PluginDLL 配置。
有关更多详细信息,请参阅 Microsoft 的“远程桌面控制/控件 ActiveX 控件”文档。
在下面的代码片段中,您可以看到如何使用从注册表读取的值设置 PluginDLL 配置的示例:
…
// 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 Remote Runtime 组件,如关于 UiPath Remote Runtime 所述。安装程序可以从以下UiPathRemoteRuntime.msi位置下载:
- UiPath Customer Portal 中的“产品下载”
- UiPath Automation Cloud 中的“资源中心” 。要访问资源中心,请登录 Automation Cloud 组织,然后单击左侧导航栏上的“帮助”按钮。