studio
2024.10
true
- 发行说明
- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 控制流程
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 日志记录
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 编码自动化
- 基于触发器的 Attended 自动化
- 录制
- 用户界面元素
- 选取器
- 对象存储库
- 数据抓取
- 图像与文本自动化
- Citrix Technologies Automation
- RDP 自动化
- VMware Horizon 自动化
- Salesforce 自动化
- SAP 自动化
- macOS 用户界面自动化
- ScreenScrapeJavaSupport 工具
- Webdriver 协议
- 扩展程序
- 测试套件 - Studio
- 故障排除
Studio 用户指南
Last updated 2024年11月18日
为自定义远程应用程序配置 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' />
这使您可以自动化远程应用程序。
- 首先,请按照“Microsoft 远程桌面和应用程序扩展程序”中所述的步骤安装扩展程序。
-
该扩展程序通过以下任一方式更新
Software\Microsoft\Terminal Server Client\Default\AddIns
注册表:LocalMachine
- 如果已为整个系统安装扩展程序CurrentUser
- 如果扩展程序是为单个用户安装的
- 检查注册表编辑器,确保扩展程序更改了注册表。其外观应如下所示:
- 获取对 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 组织,然后单击左侧导航栏上的“帮助”按钮。