创建插件

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 文件。

创建插件项目

注意: IBM Task Mining Agent 插件项目必须只包含一个插件实现。 如果需要多个插件,请为每个插件创建单独的项目。 在.NET 项目和插件实现之间保持唯一的连接。

要创建插件项目,您可以使用以下任一方法:

  • 使用 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班级。

重要: 必须在 AgentPlugin 类的基本构造函数中指定 processName。

插件入口点的示例:

    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+CCtrl+V

IBM Task Mining 代理插件在此基础上增加了四个属性,以增强键盘钩子功能。 默认情况下,这些值设置为false

表 1. 增强键盘钩子的属性

属性 描述
WatchAltKeys 启用或禁用键盘 ALT 键事件。
WatchCtrlKeys 启用或禁用键盘控制键事件。
WatchFunctionKeys 启用或禁用键盘功能键事件。
WatchNumberKeys 启用或禁用键盘号键事件。

修改鼠标和键盘事件记录

要拦截 IBM Task Mining Agent 记录的任何事件,可以使用两个事件:

  • MouseDown
  • KeyboardDown

这两个事件都有以下特点EventArgs具有可让您了解、修改或取消所记录活动的属性:

  • PluginMouseEventArgs
  • PluginKeyboardEventArgs

这两个 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并且可以在里面找到PluginMouseEventArgsPluginKeyboardEventArgsAgentPlugin还允许访问任何AutomationElement通过使用AutomationContext

表 3. 管理的物业 AutomationElements

属性 描述
GetFocusedElement 此属性获取当前关注的元素作为 AutomationElement
GetFromPoint 此属性从给定点创建 AutomationElement
GetFromHandle 此属性从给定的 windowshandle (HWND) 创建 AutomationElement

通过使用这些属性,您可以访问用户屏幕上存在的任何元素及其详细信息,例如名称、值和位置。

创建事件

您可以使用CreateActivity无需等待即可创建事件MouseDownKeyboardDown。 这样你只需运行CreateActivity。 对于那些不是由用户直接发起的活动来说它可能很有用。 例如,Microsoft Outlook 中的电子邮件可通过该功能截获并推送至 IBM Task Mining 事件。

您可以从 IDE(例如 Visual Studio)中提供的代码提示中找到有关此内容的更多详细信息IntelliSense。

创建和配置插件后,您可以继续测试和部署该插件。 更多信息,请参阅测试和部署插件