Net 3.5框架下运用。
RDPSession 可以用于无人为输入用户名和密码进行远程桌面的连接和共享。
原来在Win10下用visual studio 2019下进行3.5框架运用,但是调用3.5框架下的axRDPViewer会出错,因此改用windows7下的visual studio 2010进行(主要是考虑远古win系统应用)。
(以下代码参考了csdn和StackOverflow下的N多例子,再次感谢)
Server端:
添加引用:interop.RDPCAMPILib.dll
#region
private static RDPCOMAPILib.RDPSession rdp = new RDPCOMAPILib.RDPSession();
private static RDPCOMAPILib.RDPSRAPIInvitation invitation=null;
private static RDPCOMAPILib.IRDPSRAPIVirtualChannel virtualChannel;
private static string localIP;
private static string rdpConnectStr;
#endregion
//rdp 连接以后事件
rdp.OnAttendeeConnected+=new RDPCOMAPILib._IRDPSessionEvents_OnAttendeeConnectedEventHandler(rdp_OnAttendeeConnected);
//rdp失去连接以后事件
rdp.OnAttendeeDisconnected += new RDPCOMAPILib._IRDPSessionEvents_OnAttendeeDisconnectedEventHandler(rdp_OnAttendeeDisconnected);
//rdp设置能看的区域
rdp.SetDesktopSharedRect(0, 0, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height);
//rdp创建一个发送message的,名称为111的虚拟通道,这个名称要和浏览端创建的虚拟通道名称一致
virtualChannel = rdp.VirtualChannelManager.CreateVirtualChannel("111",RDPCOMAPILib.CHANNEL_PRIORITY.CHANNEL_PRIORITY_HI,(uint)RDPCOMAPILib.CHANNEL_FLAGS.CHANNEL_FLAGS_LEGACY