分享

利用mstscax.dll开发远程登录客户端

 梦醉千秋 2014-12-04

最近项目要用到远程登录客户端,类似于windows自带的mstsc.exe的功能,自己在网上找了好久,说是可以在mstscax.dll基础上进行开发,但是找不到比较好的资料,经过自己的摸索,终于成功了。 
第一步,mstscax.dl是一个ActiveX控件,需要进行注册,在运行中输入“regsvr32 C:\WINDOWS\system32\mstscax.dll”。 
第二步,新建对话框程序,在对话框资源上单击右键,选择【Insert ActiveX Control...】菜单,然后在弹出的界面中选择“Microsoft RDP Client Contorl”。 
第三步,设置控件的关联变量,可利用向导完成。 
第四步,打开类向导,选择右上角【添加类】按钮,在弹出的下拉列表中选择【类型库中的MFC类】,然后然后在接口列表中选择IMsRdpClientAdvanceSettings6,添加到生成类列表中。 
第五步,切换到类视图,打开CMsRdpClientAdvancedSettings6类头文件,注释掉:#import "C://Windows//system32//mstscax.dll" no_namespace 这句代码。 
第六步,在对话框的确定按钮响应函数中,添加以下代码

  1. void CRDPTestDlg::OnBnClickedOk()
  2. {
  3. // TODO: Add your control notification handler code here
  4. //OnOK();
  5. CMsRdpClientAdvancedSettings6 m_MsRdpClientAdvancedSettings(m_rdp.get_AdvancedSettings());
  6. m_rdp.put_Server(_T("192.168.0.1"));//远程目标主机的IP
  7. m_rdp.put_UserName(_T("test")); //登陆用户名
  8. m_rdp.put_DesktopHeight(800);
  9. m_rdp.put_DesktopWidth(1200);
  10. m_rdp.put_ColorDepth(32);
  11. m_MsRdpClientAdvancedSettings.put_Compress(1);
  12. m_MsRdpClientAdvancedSettings.put_BitmapPeristence(1);
  13. m_MsRdpClientAdvancedSettings.put_ClearTextPassword(_T("BW11"));//登陆密码
  14. m_MsRdpClientAdvancedSettings.put_singleConnectionTimeout(20);//连接时延
  15. m_rdp.put_ConnectingText(_T("请稍后..."));//连接时显示在界面的文字
  16. m_rdp.Connect();
  17. GetDlgItem(IDOK)->EnableWindow(FALSE);
  18. }

第七步,响应控件的OnDisConnected消息,函数如下

  1. void CRDPTestDlg::OnDisconnectedMstscax2(long discReason)
  2. {
  3. // TODO: Add your message handler code here
  4. switch (discReason)
  5. {
  6. case 0x3:
  7. AfxMessageBox(_T("该用户在别处登录,您已经被强制下线,若有疑问,请联系管理员"));
  8. break;
  9. default:
  10. AfxMessageBox(_T("远程连接失败,请重试或联系管理员"));
  11. break;
  12. }
  13. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多