- 发行说明
- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 控制流程
- 对象存储库
- 日志记录
- ScreenScrapeJavaSupport 工具
- Studio 测试
- 扩展程序
- 故障排除
概述
借助 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 扩展程序
-
First, follow the steps described in Extension for Microsoft Remote Desktop and Apps to install the extension.
-
该扩展程序通过以下任一方式更新
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;
}
To generate native selectors over RDP connections, you also need to deploy the UiPath Remote Runtime component on the Remote Desktop machine, as explained in About UiPath Remote Runtime.
可从以下位置下载 UiPathRemoteRuntime.msi 安装程序:
- UiPath Customer Portal 中的“产品下载”
- UiPath Automation Cloud 中的“资源中心” 。要访问资源中心,请登录 Automation Cloud 组织,然后单击左侧导航栏上的“帮助”按钮。