代码之家  ›  专栏  ›  技术社区  ›  nagarajannd

在RPA工具(如Automation Anywhere)中如何模拟击键

  •  2
  • nagarajannd  · 技术社区  · 6 年前

    我很想知道像AA和UiPath这样的顶级RPA工具如何模拟应用程序的击键。 按键事件 -按要求进行击键 Citrix环境。

    private void PressKeyVK(int eKeys, bool bHoldKeydown, bool bRelease)
        {
            int lScan, lExtended;
    
            lScan = MapVirtualKey(eKeys, 1);
            lExtended = 0;
            if (lScan == 0)
                lExtended = (int)KeyBoardEventEnums.KEYEVENTF_EXTENDEDKEY;
            lScan = MapVirtualKey(eKeys, 0);
    
            if (!bRelease)
                keybd_event((byte)eKeys, (byte)lScan, (uint)lExtended, UIntPtr.Zero);
            if (!bHoldKeydown)
                keybd_event((byte)eKeys, (byte)lScan, (uint)KeyBoardEventEnums.KEYEVENTF_KEYUP | (uint)lExtended, UIntPtr.Zero);
        }
    

    下面的代码在citrix环境中运行良好,但在本地应用程序中有问题。

    lScan = MapVirtualKey(eKeys, 1); //flag 1: returns virtual key code of scan code eKeys.
    

    请建议如何使用该标志在citrix和本地应用程序中运行此代码。

    API引用:

    MapVirtualKey MSDN

    Keybd_event MSDN

    1 回复  |  直到 6 年前
        1
  •  1
  •   Thej Kumar P    6 年前

    RPA工具对不同的应用层使用不同的技术。对于本地机器,主要是通过 SendMessage() PostMessage() Application.Sendkeys() .

    推荐文章
    Piotr  ·  自动Anywhere VBScript
    7 年前