C# Winform应用程序调用Microsoft RDP client control实现远程连接(VS2013)
2015-07-15 09:55
1376 查看
试了好一会,终于成功了!
先说问题:
1、控件已成功添加到工具箱中,但未在活动设计器中启用。
注册控件:regsvr32 C:\Windows\System32\mstscax.dll。
VS2013提醒——“COM 引用“MSTSCLib”是 ActiveX 控件“AxMSTSCLib”的互操作程序集,但含有 /link 标志的编译器已将其标为已链接。系统会将此 COM 引用视为引用,并且不会链接该引用。”
————暂且不知道这是什么意思,但是程序运行正常!
2、第一次做时,不知道代码写错了还是怎么的,对了,还缺少一个自动生成的app.config(不知道我的第一次怎么没有),点击“链接”按钮没有任何反应。
3、实现步骤:
(1)创建Winform应用程序,拖拉控件,设计窗体:
首先需要添加RDP Control控件:
一定要对该控件进行注册:regsvr32 C:\Windows\System32\mstscax.dll
(2)添加引用:
剩余的Combobox、textBox、btn控件以及背景、图标就不再详细介绍。
(3)剩下的就是编写“链接”按钮的代码:
先说问题:
1、控件已成功添加到工具箱中,但未在活动设计器中启用。
注册控件:regsvr32 C:\Windows\System32\mstscax.dll。
VS2013提醒——“COM 引用“MSTSCLib”是 ActiveX 控件“AxMSTSCLib”的互操作程序集,但含有 /link 标志的编译器已将其标为已链接。系统会将此 COM 引用视为引用,并且不会链接该引用。”
————暂且不知道这是什么意思,但是程序运行正常!
2、第一次做时,不知道代码写错了还是怎么的,对了,还缺少一个自动生成的app.config(不知道我的第一次怎么没有),点击“链接”按钮没有任何反应。
3、实现步骤:
(1)创建Winform应用程序,拖拉控件,设计窗体:
首先需要添加RDP Control控件:
一定要对该控件进行注册:regsvr32 C:\Windows\System32\mstscax.dll
(2)添加引用:
剩余的Combobox、textBox、btn控件以及背景、图标就不再详细介绍。
(3)剩下的就是编写“链接”按钮的代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MSTSCLib; namespace RDP_2_ { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnConnect_Click(object sender, EventArgs e)//链接按钮代码 { if(btnConnect.Text=="链接") { //MessageBox.Show("正在准备链接..."); //if() if(string.IsNullOrEmpty(cbxserver.Text) || string.IsNullOrEmpty(cbxusername.Text) || string.IsNullOrEmpty(txtpassword.Text)) { MessageBox.Show("请输入一个有效的远程连接信息———主机IP,端口号,用户名,密码!", "登录失败提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); } else { rdpClient.Server = cbxserver.Text; rdpClient.UserName = cbxusername.Text; rdpClient.AdvancedSettings2.RDPPort = 3389; rdpClient.AdvancedSettings2.SmartSizing = true; rdpClient.AdvancedSettings9.NegotiateSecurityLayer = true; IMsTscNonScriptable secured = (IMsTscNonScriptable)rdpClient.GetOcx(); secured.ClearTextPassword = txtpassword.Text; rdpClient.AdvancedSettings5.ClearTextPassword = txtpassword.Text; rdpClient.ColorDepth = 24; //rdpClient.Width = this.Size.Width; //rdpClient.Height = this.Size.Height; //rdpClient.DesktopWidth = this.Size.Width; //rdpClient.DesktopHeight = this.Size.Height; //rdpClient.FullScreenTitle = "this is test"; rdpClient.Connect(); btnConnect.Text = "Disconnect"; btnConnect.BackColor = Color.Red; } } else { btnConnect.Text = "Connect"; btnConnect.BackColor = Color.PaleGreen; try { rdpClient.Disconnect(); } catch(Exception) { } rdpClient.Refresh(); } } private void btnFullscreen_Click(object sender, EventArgs e)//全屏按钮代码 { rdpClient.FullScreen = !rdpClient.FullScreen; } } }
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- winform绑定快捷键的方法
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#.NET获取拨号连接的宽带连接方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#托管堆对象实例包含内容分析
- C#实现按照指定长度在数字前补0方法小结
- C#虚方法的声明和使用实例教程
- C#获取文件夹及文件的大小与占用空间的方法
- C#定义简单的反射工厂实例分析