我正在尝试向运行在远程桌面会话中的应用程序发送虚拟键盘输入。我正在使用:
Byte key = Ord("A");
keybd_event(key, 0, 0, 0); // key goes down
keybd_event(key, 0, KEYEVENTF_KEYUP, 0); // key goes up
现在这段代码可以将字符“a”发送到任何本地窗口,但它无法发送到远程桌面窗口。这意味着我使用远程桌面连接到服务器,然后在该服务器上打开记事本。如果我手动按键盘:它们会出现在记事本的编辑器窗口中。但是keybd_event的虚拟键盘输入不会导致“a”出现在记事本中。如何从在本地机器上运行的应用程序向远程桌面连接中运行的应用程序编程地发送虚拟键盘输入?
吹毛求疵的角落:
在这种特殊情况下,我想这样做是因为我正在尝试打败空闲超时。但是我同样可以尝试执行UI自动化测试、UI压力测试、UI故障排除测试、UI单元测试、UI数据输入测试、UI绘图测试或UI弹性测试等。
换句话说,我想要这样做的原因并不重要。
注意:超时可能来自远程桌面不活动,也可能不是。我不知道,这不影响我的问题。