我很想知道像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