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 ...
随机推荐
- 数字三角形 · Triangle
从上到下用DP. [抄题]: 给定一个数字三角形,找到从顶部到底部的最小路径和.每一步可以移动到下面一行的相邻数字上. 比如,给出下列数字三角形: [ [2], [3,4], [6,5,7], [4, ...
- maven项目工程目录约定
使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下: src/main/java —— 存放项目的.java文件 src/main/resources —— 存放 ...
- springmvc将处理后的数据通过get方法传给页面时,可能会出现乱码。下面对于get请求中文参数出现乱码提出解决办法。
对于get请求中文参数出现乱码解决办法有两个: 1.修改tomcat配置文件(tomcat--->conf--->server.xml)添加编码与工程编码一致,如下: <Connec ...
- 分享chrome清空缓存开发小技巧
在打开开发者工具的前提下,左键长按刷新页面小图标(左上角,地址栏左侧),可以调出清空缓存下拉选择项.
- WCF生成客户端代理对象的两种方法的解释
最近在封装WCF,有一些很好的实践就记录下来,大家可以放心使用,所有代码都已经调试过.如果有高手可以大家探讨一下. 在WCF中有两种不同的方法可以用于创建客户端服务对象,他们分别为: 1. 代理构造法 ...
- linux-Centos 7下mysql 5.7.9的rpm包安装
操作系统:Centos 7.1 mysql数据库版本:mysql5.7.18 1.安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载 [root@123 ~]# rpm -qa|g ...
- ubuntu下设置DNS服务器
当网卡通过DHCP获取IP地址时,DHCP会根据DHCP服务器配置,自动给系统分配DNS服务器地址,此时执行 ping www.baidu.com 动作,会将百度的域名在本地转换成ip地址,然后走路由 ...
- 调用数据库-corina
pym = mysql(host='#####', port=3306, user='######', password='########', database='algorithm') #查询数据 ...
- part1:12-sudo用户管理和Linux密码故障排除
sudo用户管理 权力下放! 1.Root密码破解步骤 a.在系统启动时,迅速按下任意键或回车键.进入grub选项菜单 b.在grub选项菜单按e进入编辑模式,上下选择kernel行.然后按e进入编辑 ...
- 2018.09.08 NOIP模拟trip(最长链计数)
差不多是原题啊. 求最长链变成了最长链计数,其余没有变化. 这一次考试为了保险起见本蒟蒻还是写了上次没写的辅助数组. 代码: #include<bits/stdc++.h> #define ...