创建插件
IBM Task Mining Agent 插件是一个 C# 类,它继承于 TaskMining.Agent.Plugin.dll 文件中的 AgentPlugin 类。 您可以在 IBM Task Mining Agent 安装目录(例如 C:\Program Files\IBM Task Mining
Agent\TaskMining.Agent.Plugin.dll )中找到该 DLL 文件。
创建插件项目
要创建插件项目,您可以使用以下任一方法:
- 使用 Visual Studio 2022 中提供的代理插件模板。

- 创建
net8.0-windows项目,参考TaskMining.Agent.Plugin.dll。
以下代码片段中显示了插件项目的示例。 在本例中, HintPath 指定了 IBM Task Mining Agent 安装目录的路径。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="TaskMining.Agent.Plugin">
<HintPath>C:\Program Files\IBM Task Mining Agent\TaskMining.Agent.Plugin.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
创建入口点
创建项目后,您必须为插件创建一个入口点。 这是继承自AgentPlugin班级。
插件入口点的示例:
using TaskMining.Agent.Plugin;
namespace TaskMining.Notepad.Plugin
{
public class NotepadPlugin : AgentPlugin
{
public NotepadPlugin()
: base("notepad")
{
}
}
}
In this example, the plugin class is `NotepadPlugin` and the `processName` is `notepad`.
增强 hooks 和 watch 属性
默认情况下, IBM Task Mining Agent 只捕获以下事件:
- 鼠标点击
- 键盘按钮和组合,如
Tab,Return,Ctrl+C、Ctrl+V
IBM Task Mining 代理插件在此基础上增加了四个属性,以增强键盘钩子功能。 默认情况下,这些值设置为false。
表 1. 增强键盘钩子的属性
| 属性 | 描述 |
|---|---|
WatchAltKeys |
启用或禁用键盘 ALT 键事件。 |
WatchCtrlKeys |
启用或禁用键盘控制键事件。 |
WatchFunctionKeys |
启用或禁用键盘功能键事件。 |
WatchNumberKeys |
启用或禁用键盘号键事件。 |
修改鼠标和键盘事件记录
要拦截 IBM Task Mining Agent 记录的任何事件,可以使用两个事件:
MouseDownKeyboardDown
这两个事件都有以下特点EventArgs具有可让您了解、修改或取消所记录活动的属性:
PluginMouseEventArgsPluginKeyboardEventArgs
这两个 EventArgs 共享以下三个属性,可用于编辑 IBM Task Mining 中的任务。
表 2. 用于编辑任务的属性
| 属性 | 描述 |
|---|---|
| 标题 | 该属性可获取或设置事件的标题 (页面和 URL 标题 )。 |
| 选择器 | 此属性获取或设置事件的选择器 (任务名称选择器)。 |
| 取消 | 此属性获取或设置值以指示是否应取消事件。 |

该插件只记录键盘事件,取消所有鼠标动作的记录。 它还指定将选择器重命名为 Text editor 并记录所有功能键事件。
using TaskMining.Agent.Plugin;
namespace TaskMining.Notepad.Plugin
{
public class NotepadPlugin : AgentPlugin
{
public NotepadPlugin()
: base("Notepad")
{
this.WatchFunctionKeys = true;
this.KeyboardDown += NotepadPlugin_KeyboardDown;
this.MouseDown += NotepadPlugin_MouseDown;
}
private void NotepadPlugin_MouseDown(object sender, PluginMouseEventArgs args)
{
args.Cancel = true;
}
private void NotepadPlugin_KeyboardDown(object sender, PluginKeyboardEventArgs args)
{
if (args.Selector == "Win32[@ClassName=RichEditD2DPT][@Type=document][@Name=Text editor]")
{
args.Selector = "Text editor";
}
else
{
args.Cancel = true;
}
}
}
}
使用AutomationContext
IBM Task Mining 当用户点击或按下元素上的按钮时,Agent 会记录事件。 这个元素是一个AutomationElement并且可以在里面找到PluginMouseEventArgs和PluginKeyboardEventArgs。 AgentPlugin还允许访问任何AutomationElement通过使用AutomationContext。
表 3. 管理的物业 AutomationElements
| 属性 | 描述 |
|---|---|
GetFocusedElement |
此属性获取当前关注的元素作为 AutomationElement。 |
GetFromPoint |
此属性从给定点创建 AutomationElement 。 |
GetFromHandle |
此属性从给定的 windowshandle (HWND) 创建 AutomationElement 。 |
通过使用这些属性,您可以访问用户屏幕上存在的任何元素及其详细信息,例如名称、值和位置。
创建事件
您可以使用CreateActivity无需等待即可创建事件MouseDown和KeyboardDown。 这样你只需运行CreateActivity。 对于那些不是由用户直接发起的活动来说它可能很有用。 例如,Microsoft Outlook 中的电子邮件可通过该功能截获并推送至 IBM Task Mining 事件。
您可以从 IDE(例如 Visual Studio)中提供的代码提示中找到有关此内容的更多详细信息IntelliSense。
创建和配置插件后,您可以继续测试和部署该插件。 更多信息,请参阅测试和部署插件。