Windows远程桌面客户端

1、注册控件:regsvr32 C:\Windows\System32\mstscax.dll。

2、添加RDP Control控件到工具箱中。我选择的RDP Client Control (redistributable) - version 9

3、在VS项目中引用C:\Windows\System32\mstscax.dll

4、RdpTabPage类

using System;
using System.Windows.Forms;

namespace RdpClient
{
    public class RdpTabPage : TabPage
    {
        AxMSTSCLib.AxMsRdpClient9 rdpc = null;
        protected override void OnCreateControl()
        {
            rdpc = new AxMSTSCLib.AxMsRdpClient9();
            rdpc.OnDisconnected += new AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEventHandler(rdpc_OnDisconnected);
            this.Controls.Add(rdpc);
            rdpc.Dock = DockStyle.Fill;
            base.OnCreateControl();
        }

        void rdpc_OnDisconnected(object sender, AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEvent e)
        {
            ((TabControl)this.Parent).TabPages.Remove(this);
        }

        public void Disconnect()
        {
            try
            {
                if (rdpc.Connected == 1)
                {
                    rdpc.Disconnect();
                }
            }
            catch (Exception) { }
        }

        private void SetRdpClientProperties(RdpInfo info)
        {
            rdpc.Server = info.MachineName;
            rdpc.UserName = info.UserName;
            rdpc.Domain = "";
            rdpc.AdvancedSettings9.RDPPort = info.RdpPort;
            rdpc.AdvancedSettings9.ClearTextPassword = info.Password;
            rdpc.AdvancedSettings9.RedirectDrives = true;
            rdpc.AdvancedSettings9.RedirectPrinters = true;
            rdpc.AdvancedSettings9.RedirectSmartCards = true;
            rdpc.AdvancedSettings9.ConnectToServerConsole = true;
            rdpc.ColorDepth = 32;
            rdpc.Dock = DockStyle.Fill;
        }

        public void Connect(RdpInfo info)
        {
            SetRdpClientProperties(info);
            rdpc.Connect();
        }
    }
}

5、主窗体

using System;using System.Windows.Forms;

namespace RdpClient
{
    public partial class Form_Main : Form
    {
        #region 构造
        public Form_Main()
        {
            InitializeComponent();
        }
        #endregion

        #region 方法
        /// <summary>
        /// 绑定远程桌面列表
        /// </summary>
        private void BindMenuItem()
        {
            tsb_Rdps.DropDownItems.Clear();
            if (Config.RdpInfos == null) return;

            foreach (var info in Config.RdpInfos.Items)
            {
                ToolStripMenuItem item = new ToolStripMenuItem();
                item.ImageScaling = ToolStripItemImageScaling.SizeToFit;
                item.Name = string.Format("MenuItem{0}", info.AliasName);
                item.Text = info.AliasName;
                item.Tag = info;
                tsb_Rdps.DropDownItems.Add(item);
            }
        }

        public void RdpConnect(RdpInfo info)
        {
            RdpTabPage rdpTab = new RdpTabPage();
            rdpTab.Text = info.AliasName;

            foreach (TabPage tp in tab_Rdps.TabPages)
            {
                if (tp.Text == rdpTab.Text)
                {
                    tab_Rdps.SelectTab(tp);
                    return;
                }
            }

            tab_Rdps.TabPages.Add(rdpTab);
            rdpTab.Connect(info);
            tab_Rdps.SelectTab(rdpTab);
        }
        #endregion

        #region 事件
        private void Form_Main_Load(object sender, EventArgs e)
        {
            rdpClient.Visible = false;
            Config.Load();
            BindMenuItem();
        }
        private void Form_Main_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("确定退出程序?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
            {
                e.Cancel = true;
                return;
            }
        }

        /// <summary>
        /// 连接远程桌面
        /// </summary>
        private void tsb_Rdps_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            RdpInfo item = e.ClickedItem.Tag as RdpInfo;
            if (item == null) return;

            RdpConnect(item);
        }

        /// <summary>
        /// 关闭当前Tab页的远程桌面
        /// </summary>
        private void tsb_Disconnect_Click(object sender, EventArgs e)
        {
            if (tab_Rdps.SelectedIndex < 0) return;

            RdpTabPage rdpTab = (RdpTabPage)tab_Rdps.SelectedTab;
            if (rdpTab != null)
            {
                rdpTab.Disconnect();
            }
        }

        /// <summary>
        /// 关闭所有Tab页的远程桌面
        /// </summary>
        private void tsb_DisconnectAll_Click(object sender, EventArgs e)
        {
            foreach (TabPage tab in tab_Rdps.TabPages)
            {
                RdpTabPage rdpTab = (RdpTabPage)tab;
                rdpTab.Disconnect();
            }
        }

        /// <summary>
        /// 最大化
        /// </summary>
        private void tsb_Max_Click(object sender, EventArgs e)
        {
            if (tab_Rdps.SelectedIndex < 0) return;

            RdpTabPage rdpTab = (RdpTabPage)tab_Rdps.SelectedTab;
            if (rdpTab != null)
            {
                var rdpc = rdpTab.Controls[0] as AxMSTSCLib.AxMsRdpClient9;
                rdpc.FullScreen = true;
                rdpc.FullScreenTitle = rdpTab.Text;
            }
        }

        private void tsb_Config_Click(object sender, EventArgs e)
        {
            Form_Settings form = new Form_Settings();
            if (form.ShowDialog() == DialogResult.OK)
            {
                BindMenuItem();
            }
        }

        private void tsb_About_Click(object sender, EventArgs e)
        {
            MessageBox.Show("远程桌面", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        #endregion
    }
}

6、程序下载地直址

https://pan.baidu.com/s/1Fcolic2QAcNANJszscVUjg

原文地址:https://www.cnblogs.com/zhangwc/p/9110589.html

时间: 2024-11-12 14:42:07

Windows远程桌面客户端的相关文章

不想使用Windows自带远程桌面客户端的另外一种选择

今天突然想寻找一个Windows远程桌面客户端的替代品,度娘提供了一个建议:MultiDesk,绿色小软件,试用了一下,感觉速度挺快,能提供多标签方式的管理远程桌面,方便使用多个虚拟机的程序猿进行系统维护,大家可以尝试一下.下面是从其网站(http://www.hoowi.com/multidesk/index_chs.htm)引用的信息,供参考. MultiDesk 什么是 MultiDesk? MultiDesk 是一个选项卡(TAB标签)方式的远程桌面连接 (Terminal Servic

windows远程桌面连接

服务器端: 1.我的电脑->管理->本地用户和组->用户->新建用户设置账号密码,隶属于administrator和remote user 2.我的电脑->属性->远程设置->允许用户远程操作 3.远程桌面连接-选项->本地资源->详细信息->驱动器(选择) 用于复制粘贴功能 客户端: 1.远程桌面连接-选项->本地资源->详细信息->驱动器(选择) 用于复制粘贴功能 windows远程桌面连接,布布扣,bubuko.com

Windows远程桌面连接Ubuntu 14.04 (转)

由于xrdp.gnome和unity之间的兼容性问题,在Ubuntu 14.04版本中仍然无法使用xrdp登陆gnome或unity的远程桌面,现象是登录后只有黑白点为背景,无图标也无法操作.与13.10中的解决方式相同,使用xrdp只能登录xfce的远程桌面. 首先安装xfce: sudo apt-get update sudo apt-get install xfce4 如果网速较慢,这会持续一段时间. 然后安装xrdp组件和vnc服务器: sudo apt-get install xrdp

连接windows远程桌面

windows远程桌面连接成功 1.本机系统windows7,连接目标服务器windowsServer2008R2 2.服务器端 计算机->管理->功能摘要->添加功能->安装Telnet服务器 3.服务器端 计算机->管理->配置远程桌面->远程->仅允许运行使用网络级别身份验证的远程桌面的计算机连接->确定 4.本机 开始->控制面板->程序->程序和功能->打开或关闭windows功能->安装Telnet客户端 5.

CentOS下通过rdesktop连接Windows远程桌面

众所周知,微软的Windows提供了一种远程桌面系统(Remote Desktop),该服务的默认端口是3389,可使用户远程登录进行系统管理或作为终端服务器运行各种应用软件. 而要连接Windows远程桌面,需在Windows客户端安装相应的软件(tsclient).如果你是Windows服务器管理员肯定使用过该工具,因为远程桌面能大大方便系统管理员远程维护服务器.在Linux系统中,同样可以通过一款免费工具rdesktop连接到Windows远程桌面. 下面就来和大家分享如何在Linux(C

在linux下连接windows远程桌面

使用rdesktop连接Windows远程桌面 Windows 提供了一种远程桌面系统,可使用户远程登录进行系统管理或作为终端服务器运行各种应用软件.要连接Windows远程桌面,需在Windows客户端安装 相应的软件(tsclient).如果你是Windows服务器管理员肯定使用过该工具,因为远程桌面能大大方便系统管理员远程维护服务器.在Linux 系统中,我们也可通过rdesktop工具连接Windows远程桌面. debian:~# apt-get install rdesktop 使用

Windows远程桌面使用大招儿

1.开通远程桌面: 我的电脑---右键"属性"-"高级系统设置"-远程-允许运行任意版本远程桌面的计算机连接(较不安全) 2.登录远程桌面的Windows用户,至少是Remote Desktop User用户组的成员.当然Administrator组也是可以的. 3.登录远程桌面的用户名,必须是带有密码的.空密码的帐号是无法登录的. 4.打开远程桌面服务,输入services.msc打开服务:Remote Desktop Configuration.Remote D

如何使用windows远程桌面控制树莓派3B

文章开头先来吐槽一下网上的免费教程.虽然现在是信息时代,我们可以在网上学习各种各样的知识.但是网上的教程鱼龙混杂,缺少时间有效性.甚至有些纯粹是误导,只看到结果,根本不披露实现过程.这一点要鄙视一下.       在实际操作过程中,你会遇到很多问题,这些问题对于还是小白的你来说,如果百度查不到,那就会打击你对树莓派的信心,加速树莓派吃灰的进程.所以,我会不定期的更新树莓派3b 的教程,教你一步一步的玩转树莓派!每一篇文章我都会注明更新日期,方便大家查阅.好,闲言少叙,开始今天的正题:树莓派3B(

windows 远程桌面连接 RPi 2B

/************************************************************************* * windows 远程桌面连接 RPi 2B * 声明: * 本文主要记录windows下如何远程RPi 2B,通过ssh进去安装xrdp.设置USB * 无线网卡等工作. * * 2016-2-15 深圳 南山平山村 曾剑锋 ************************************************************