我正在尝试使用 keybd_event() 按下某些键以进入远程桌面应用程序。对于最简单的测试,我只是在远程 session 中打开记事本,并在当前用户关注记事本的情况下在本地计算机上运行调用 keybd_event()。
不幸的是,它似乎没有将任何输入发送到远程桌面。
如果我在本地计算机上运行该应用程序并聚焦本地的记事本实例,它会准确地键入我想键入的内容,这没有问题。
有没有人知道为什么这行不通?显然我可以手动输入远程桌面 session 。
谢谢
最佳答案
任何远程桌面程序都是连接远程系统的网关,它是中介。通过任何方法(如 keybd_event
、SendInput
、PostMessage
等)向此程序发送任何键盘消息将被 RDP 程序静默吸收。它根本不会使用它,也不会将它传递给连接的资源。
很可能(我不确定),该程序可能已记录 API 以向其发送一些消息,例如关闭 session 、打开 session 或将消息发送到已连接的 session 。使用给定的 API(函数、COM 接口(interface)等),您可以向连接的资源发送一些输入。
关于c++ - keybd_event() 调用不发送到远程桌面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061922/