积极答复者
如何通过Remote Desktop Service控制远程桌面的鼠标移动、点击以及键盘输入

问题
-
我在客户端是通过MsRdpClient连接的远程桌面
现在想通过SendMessage或者PostMessage对MsRdpClient发送鼠标或键盘消息
但是远程桌面并没有响应
大致代码如下
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int PostMessage(IntPtr hWnd, uint msg, int wParam, IntPtr lParam);static uint WM_CHAR = 0x0102;
AxMSTSCLib.AxMsRdpClient4 rdpc=new AxMSTSCLib.AxMsRdpClient4();
PostMessage(rdpc.Handle, WM_CHAR, (int)'A', IntPtr.Zero);
不知问题出在什么地方 或者是否有更好的解决方案
谢谢
答案
全部回复
-
据我所知,目前没有办法对于 RDP Session 的任何窗口进行运程的消息控制,但本地是可以的 (也就是如果程序在远程左面连接的会话内运行,就可以,如果运行在发起远程桌面连接的机器上,就不行),RDP Client 中间的那个显示桌面的部分是一个 ActiveX,并且,它并不具备本地 Windows 所能认识的消息机制 (您可以通过 Spy++ 看看就知道了)。
目前,对于 Test Automation 来说,这是一个很大的挑战。。。不知道 RDP 7.1 (Windows 7 Service Pack 1 + RemoteFX) 会不会在设计上有所变动,但我想,应该没什么希望。
Mark Zhou -
c# 远程控制
参照
http://www.lwolf.cn/blog/article/code/csharp-remote.htm
http://blog.csdn.net/zx13525079024