keybd_event()调用不发送到远程桌面

时间:2014-11-21 12:55:17

标签: c++ winapi remote-desktop

我正在尝试使用keybd_event()将某些键按到远程桌面应用程序。对于最简单的测试,我只是在远程会话中打开记事本,并在本地计算机上运行调用keybd_event(),当前用户将注意力放在记事本上。

不幸的是,它似乎没有将任何输入发送到远程桌面。

如果我在本地计算机上运行具有焦点的本地记事本实例的应用程序,它会准确输入我想要键入的内容没有问题。

有没有人有任何想法为什么这不起作用?显然,我可以手动输入远程桌面会话。

由于

1 个答案:

答案 0 :(得分:1)

任何远程桌面程序都是连接远程系统的网关,它是一个中介。通过任何方法(如keybd_eventSendInputPostMessage等)向该程序发送任何键盘消息都将被RDP程序默默地吸收。它根本不会消耗它,并且不会将它传递给连接的资源。

最有可能(我不确定),程序可能会记录API以向其发送一些消息,例如close-session,open-session或send-message-to-connected session。使用给定的API(函数,COM接口),可以向连接的资源发送一些输入。