欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C# 实现RDP远程桌面连接

程序员文章站 2024-03-15 19:47:06
...

C# 实现RDP远程桌面连接

因为频繁的访问远程windows server服务器,每次调出cmd运行mstsc,然后输入一大串信息去链接就显得有些繁琐了。为方便计,于是使用C#编写一个小工具。功能相当简陋,就是连接桌面和剪切板。自用的话,可以在Form中将连接信息写死就行,如需更改的话可采取XML存储连接信息。不过我只有一台服务器,不需要到处连接。所以我直接写死在项目中了。

本文采用用 .NET 平台中 Microsoft Terminal Services Client ActiveX control 来实现远程桌面的访问。因为这个控件不在默认的工具箱中,所以需要引用出来,下面步骤是引用说明,
1.新建windows应用程序项目,在项目下的引用处右击–添加引用–COM组件–Microsoft Terminal Services Active Client 1.0 Type Library,这样会添加一个动态库到项目中。
C# 实现RDP远程桌面连接
2. 在VS软件左侧工具箱任意位置右击–选择项–Microsoft Terminal Services Client Control,确定后就会有相应的控件出现。
C# 实现RDP远程桌面连接
3. 同样操作,添加rdp支持RDP version 9
C# 实现RDP远程桌面连接
4. 至此环境配置完成,以下是远程桌面核心代码实现:

/// <summary>
        /// 远程连接桌面方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text == "链接")
            {
                if (string.IsNullOrEmpty(str_computer.Text.Trim()))
                {
                    MessageBox.Show("连接信息输入不完整!IP是必须项!");
                    button3.Visible = false;
                    return;
                }
                try
                {
                    string IP = str_computer.Text.Trim();
                    Ping pingsender = new Ping();
                    PingReply reply = pingsender.Send(IP);//判断输入的ip是否合法
                    if (reply.Status == IPStatus.Success)
                    {
                        t.rdp.Server = IP;//远程桌面IP地址
                        t.rdp.UserName = str_userName.Text.Trim();//远程连接用户名
                        t.rdp.AdvancedSettings2.RDPPort = Convert.ToInt16(RDPPort.Text.Trim());//远程连接端口,默认是3389
                        t.rdp.AdvancedSettings2.SmartSizing = true;
                        t.rdp.AdvancedSettings9.NegotiateSecurityLayer = true;
                        IMsTscNonScriptable securd = (IMsTscNonScriptable)t.rdp.GetOcx();
                        securd.ClearTextPassword = str_password.Text.Trim();//远程连接密码
                        t.rdp.AdvancedSettings5.ClearTextPassword = str_password.Text.Trim();
                        t.rdp.ColorDepth = 24;
                        button3.Visible = false;
                        t.rdp.Connect();
                        t.Show();
                        button1.Text = "断开链接";
                        button1.BackColor = Color.Red;
                        button3.Visible = true;

                    }
                    else
                    {
                        this.str_computer.Text = string.Empty;
                        MessageBox.Show("所选IP不能远程,请重试!");

                    }
                }
                catch
                {
                    ;
                }
            }
            else
            {
                button1.Text = "链接";
                button1.BackColor = Color.PaleGreen;
                button3.Visible = false;
                t.Hide();
                try
                {
                    t.rdp.Disconnect();

                }
                catch
                {
                    ;
                }
                t.rdp.Refresh();
            }
        }
  1. 完成配置,呈上成品图:
    C# 实现RDP远程桌面连接
    附上完整可运行的项目源码,欢迎指正交流,谢谢。

参考帖子如下:
【205】C#实现远程桌面访问

在此谢谢帖子给的思路。

相关标签: RDP