RDP窗口不会对键盘模拟做出反应

时间:2015-10-02 14:28:02

标签: c# winapi rdp

我使用RemoteApp(~RDP)访问远程应用程序,然后尝试用键盘模拟一些用户活动。但无论如何,远程应用程序不会对该活动做出反应。 在本地运行的相同应用程序上的相同模拟工作完美!但是当我开始远程与应用程序交互时,一切都失败了。 我试过了:

  1. SendKeys.SendWait(字符串)
  2. keybd_event(byte bVk,byte bScan,uint dwFlags,UIntPtr dwExtraInfo)
  3. 通过它输入SendInput和库InputSimulator(https://inputsimulator.codeplex.com/
  4. 没有什么是好的。唯一的成功是远程应用程序对退格做出反应。

    两台机器都是Win7 x64。

    您对如何使用RDP-windows模拟键盘活动有任何建议或积极的经验吗?

1 个答案:

答案 0 :(得分:0)

我找到了以下解决方案 - 使用AutoIt。

  1. Download AutoIt来自官方网站并安装;
  2. 向项目的Referenses添加库AutoItX3.Assembly.dll。不要与库和AutoItX3.dll AutoItX3_x64.dll混淆,这是必不可少的;
  3. 在文件的开头添加using AutoIt;,这将与键盘一起使用;
  4. 对于键盘模拟,请使用静态方法AutoItX.Send(string);
  5. 程序的可执行目录必须包含库AutoItX3.Assembly.dll,AutoItX3.dll和AutoItX3_x64.dll。如果您确定您的应用程序无法在32位或64位操作系统上运行,则可以相应地删除其中一个库 - AutoItX3.dll或AutoItX3_x64.dll。