C#远程桌面连接工具
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 == )
{
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 = ;
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)
{
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>
/// 双击选项卡时关闭相应选项卡
/// </summary>
private void tab_Rdps_DoubleClick(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_Disconnect_Click(object sender, EventArgs e)
{
if (tab_Rdps.SelectedIndex < ) 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 < ) return; RdpTabPage rdpTab = (RdpTabPage)tab_Rdps.SelectedTab;
if (rdpTab != null)
{
var rdpc = rdpTab.Controls[] 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
C#远程桌面连接工具的更多相关文章
- ssh&远程桌面连接工具finalshell
无意间发现的一款工具,有兴趣的可以看看点我进入官网 百度云盘 链接:https://pan.baidu.com/s/1wMuGav64e2zV91QznBkvag 密码:zpyb软件特点直接搬运的官方 ...
- ubuntu安装远程桌面连接工具
1. 安装xrdp sudo apt-get -y install xrdp 2.安装vnc4server sudo apt-get install vnc4server 3.安装xubunt ...
- 远程桌面连接工具 Remote Desktop Manager 9.1.2.0 Enterprise 多国语言绿色版附注册码 简单使用
1:修改成中文简体 2: 注册破解 (记得一定要先断网) admin admin@admin.com 31GKI-OK1HY-59H35-Y8GPB-8WDY6 3 : 创建连接 搞定
- Win7系统怎么开启远程桌面?Win7远程桌面怎么用(转)
远程桌面服务开启之后,可以方便的远程管理服务器或计算机.为生活和工作带来不少便利呢,很多小伙伴还不知道怎么开启win7远程桌面吧(下面咗嚛以内网远程桌面为例) 工具/原料 Win7 Win7远程桌 ...
- CentOS6.5下VNC Server远程桌面配置详解
参考文献: (总结)CentOS Linux下VNC Server远程桌面配置详解 远程桌面连接工具VNC——license Key 我的下载地址为 太平洋下载 VNC连接黑屏的问题 centos 6 ...
- Win10 远程桌面连接出现“要求的函数不受支持”的解决办法之修改注册表
问题起因 笔者自己在阿里云上搞服务器,有一台 Windows Server 必须通过远程桌面连接来管理,由于没能完全关掉 Win10 自带的烦人的系统更新,导致昨天安装完更新后出现了连接远程桌面时“要 ...
- 【转】XP系统远程桌面连接2012R2提示:远程计算机需要网络级别身份验证,而您的计算机不支持该验证
一.背景 因对方客户的服务器是内网的,需要操作更新服务器的数据库表信息,因此远程对方客户办公司的电脑远程服务器:但是在远程桌面连接出现问题. 二.错误问题 错误问题:“远程计算机需要网络级别身份验证, ...
- xp 如何打开(进行)远程桌面连接
http://apps.hi.baidu.com/share/detail/31102654http://help.360.cn/5030804/40072526.htmlhttp://hi.baid ...
- Xrdp - 通过Windows的RDP连接Linux远程桌面(Ubuntu/CentOS/Redhat 7)(转载)
您多久访问一次Linux桌面? 您使用什么工具来访问远程桌面? Xrdp是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面. 除了Windows RDP之外,xr ...
随机推荐
- java小知识点简单回顾
1.java的数据类型分为两种:简单类型和引用类型(数组.类以及接口).注意,java没有指针的说法,只有引用.简单类型的变量被声明时,存储空间也同时被分配:而引用类型声明变量(对象)时,仅仅为其分配 ...
- 使用生活实例理解Asp.net运行时
学习编程语言,掌握面向对象的编程思想尤为重要,一旦理解了面向对象的这种概念,那么好些地方拿到生活中去理解,就容易的多了.书本上的枯燥干涩的语言,对于好多人来说,即难懂,更难长时间牢牢记得.但是编程语言 ...
- fiddler抓web请求
原理 fiddler抓包原理 fiddler 调试器注册到操作系统因特网服务中,系统所有的网络请求都会走fiddler的代理,所以fiddler才能抓包. Debug traffic from any ...
- java和数据结构的面试考点
目标:不要有主要的逻辑错误.2遍以内bug free.注意代码风格 不要让面试官觉得不懂规矩 Java vs C++ Abstract class vs interface pass by refe ...
- UpdatePanel中弹出新窗口
如果允许,在UpdatePanel中使用iframe即可,不允许的话,用下面的方法实现弹窗 要在UpdatePanel中使用FileUpload时,会遇到此问题,或者同类其它情况 <asp:Sc ...
- [leetcode]333. Largest BST Subtree最大二叉搜索树子树
Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...
- 创建HTML元素的方法
第一种:使用 parent.appendchild()方法 HTML页面 <div id="div1"></div> JS文件 //第一步创建标签元素节点 ...
- NPOI导入导出Excel数据
代码: using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; usi ...
- Golang之redis
redis是个开源的高性能的key-value的内存数据库,可以把它当成远程的数据结构. 支持的value类型非常多,比如string.list(链表).set(集合). hash表等等 redis性 ...
- php调试利器之phpdbg
信海龙的博客 php调试利器之phpdbg 简介 PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境. PHPDBG的目标是成为一个轻量级.强大.易用的 ...