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

C# 如何在RPA工具(如Automation Anywhere)中模拟击键,c#,sendkeys,citrix,scancodes,automationanywhere,C#,Sendkeys,Citrix,Scancodes,Automationanywhere,我很想知道像AA和UiPath这样的顶级RPA工具是如何模拟应用程序的按键操作的。 我已经使用Keybd_事件构建了一个应用程序来模拟击键,但我一直面临着Keybd_事件的扫描代码参数问题——因为它需要在Citrix环境中执行击键 其中,如下代码在citrix环境中运行良好,但在本地应用程序中存在问题 lScan = MapVirtualKey(eKeys, 1); //flag 1: returns virtual key code of scan code eKeys. 如果使用标志2,则

我很想知道像AA和UiPath这样的顶级RPA工具是如何模拟应用程序的按键操作的。 我已经使用Keybd_事件构建了一个应用程序来模拟击键,但我一直面临着Keybd_事件的扫描代码参数问题——因为它需要在Citrix环境中执行击键

其中,如下代码在citrix环境中运行良好,但在本地应用程序中存在问题

lScan = MapVirtualKey(eKeys, 1); //flag 1: returns virtual key code of scan code eKeys.
如果使用标志2,则在本地应用程序中效果良好,但SHIFT、ESC和功能键在citrix应用程序中不起作用

lScan = MapVirtualKey(eKeys, 1); //flag 1: returns virtual key code of scan code eKeys.
请建议如何使用该标志使该代码在citrix和本地应用程序中工作

lScan = MapVirtualKey(eKeys, 1); //flag 1: returns virtual key code of scan code eKeys.
API参考资料:


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

应用程序。Sendkeys
与Citrix透明窗口客户端不完全兼容。在C#
System.Windows.Forms.SendKeys.Send(“{F4}”)中无效。应用:IE是通过Citrix XenApp打开的,这个线程有希望吗?