一、mstscax.dl是一个ActiveX控件,需要进行注册,"regsvr32 C:\WINDOWS\system32\mstscax.dll"。
二、新建对话框程序。
三、在工具箱中选择项选择COM组件,增加Microsoft Terminal Services Control Type Library(使用Microsoft RDP Client Control,也可以)。
四、将新加组件添加到对话框中。
五、给该组件增加关联control变量,m_rdp。
六、打开类向导,选择右上角【添加类】按钮,在弹出的下拉列表中选择【类型库中的MFC类】,Microsoft Terminal Services Control Type Library,然后在接口列表中选择IMsRdpClientAdvanceSettings6,添加到生成类列表中。在CMsRdpClientAdvancedSettings6类头文件,注释掉#import "C://Windows//system32//mstscax.dll" no_namespace 这句代码。
七、connect测试 代码
CMsRdpClientAdvancedSettings6 m_MsRdpClientAdvancedSettings(m_rdp.get_AdvancedSettings());
m_rdp.put_Server(_T("192.168.0.1"));//远程目标主机的IP
m_rdp.put_UserName(_T("test")); //登陆用户名
m_rdp.put_DesktopHeight(800);
m_rdp.put_DesktopWidth(1200);
m_rdp.put_ColorDepth(32);
m_MsRdpClientAdvancedSettings.put_Compress(1);
m_MsRdpClientAdvancedSettings.put_BitmapPeristence(1);
m_MsRdpClientAdvancedSettings.put_ClearTextPassword(_T("BW11"));//登陆密码
m_MsRdpClientAdvancedSettings.put_singleConnectionTimeout(20);//连接时延
m_rdp.put_ConnectingText(_T("请稍后..."));//连接时显示在界面的文字
m_rdp.Connect();
GetDlgItem(IDOK)->EnableWindow(FALSE);
八、disconect
m_rdp.Disconnect();
九、这一段未能找到解释:
响应控件的OnDisConnected消息
<span style="font-family:SimSun;font-size:18px;"> switch (discReason)
{
case 0x3:
AfxMessageBox(_T("该用户在别处登录,您已经被强制下线,若有疑问,请联系管理员"));
break;
default:
AfxMessageBox(_T("远程连接失败,请重试或联系管理员"));
break;
}
</span>