gpt4 book ai didi

c# - 如何在 Automation Anywhere 等 RPA 工具中模拟击键

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:25 24 4
gpt4 key购买 nike

我很想知道 AA 和 UiPath 等顶级 RPA 工具如何模拟应用程序的击键。我已经构建了一个使用 Keybd_event 来模拟击键的应用程序,但我一直面临 keybd_event 的扫描代码参数问题 - 因为它需要在 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.

如果使用标志 2,它在本地应用程序中运行良好,但 SHIFT 、 ESC 和功能键在 citrix 应用程序中不起作用。

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

API 引用:

MapVirtualKey MSDN

Keybd_event MSDN

最佳答案

RPA 工具针对不同的应用层使用不同的技术。对于本地机器,主要通过 SendMessage()PostMessage() API。对于 RDP 和 Citrix 等薄层应用程序,它模拟类似于 Application.Sendkeys() 的软件按键。

关于c# - 如何在 Automation Anywhere 等 RPA 工具中模拟击键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50926223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com