分享利用c#实现windows远程桌面连接实例教程
发布时间 - 2017-05-24 00:00:00 点击率:次本篇文章主要介绍了c#实现windows远程桌面连接程序代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成
到自己的winform程序,并实现管理远程主机的配置。
远程桌面核心类库
windows系统自带了远程桌面activex dll,目录:
c:\Windows\System32\mstscax.dll
此类库无法使用c#直接调用,介绍一个工具AxImp.exe
AxImp.exe
msdn.microsoft.com/zh-cn/library/8ccdh774(VS.80).aspx
ActiveX 控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。
控件转换
在cmd输入以下命令
"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\AxImp.exe" "c:\Windows\System32\mstscax.dll"
即可生成AxMSTSCLib.dll,MSTSCLib.dll
远程桌面连接核心代码
//远程连接核心方法
private AxMSTSCLib.AxMsRdpClient7 rdpc = null;
protected void OnCreateControl()
{
rdpc = new AxMSTSCLib.AxMsRdpClient7();
rdpc.OnDisconnected += new AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEventHandler(rdpc_OnDisconnected);
this.Controls.Add(rdpc);
rdpc.Dock = DockStyle.Fill;
rdpc.BringToFront();
}
void rdpc_OnDisconnected(object sender, AxMST
SCLib.IMsTscAxEvents_OnDisconnectedEvent e)
{
//处理断开连接
}
public void Disconnect()
{
try
{
if (rdpc.Connected == 1)
{
rdpc.Disconnect();
}
}
catch (Exception)
{
}
}
private void SetRdpClientProperties(Machine parMachine)
{
rdpc.Server = parMachine.MachineName;
rdpc.AdvancedSettings2.RDPPort = parMachine.Port;
rdpc.UserName = parMachine.UserName;
rdpc.Domain = parMachine.DomainName;
if (parMachine.Password != "")
{
rdpc.AdvancedSettings5.ClearTextPassword = parMachine.Password;
}
rdpc.AdvancedSettings5.RedirectDrives = parMachine.ShareDiskDrives;
rdpc.AdvancedSettings5.RedirectPrinters = parMachine.SharePrinters;
rdpc.ColorDepth = (int)parMachine.ColorDepth;
}
public void Connect(Machine parMachine)
{
SetRdpClientProperties(parMachine);
rdpc.Connect();
}
//远程主机配置
[Serializable()]
public class Machine
{
private string _RemoteDesktopConnectionName;
public string RemoteDesktopConnectionName
{
get { return _RemoteDesktopConnectionName; }
set { _RemoteDesktopConnectionName = value; }
}
private string _MachineName;
public string MachineName
{
get { return _MachineName; }
set { _MachineName = value; }
}
private string _DomainName;
public string DomainName
{
get { return _DomainName; }
set { _DomainName = value; }
}
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
private string _Password;
public string Password
{
get { return _Password; }
set { _Password = value; }
}
private bool _AutoConnect;
public bool AutoConnect
{
get { return _AutoConnect; }
set { _AutoConnect = value; }
}
private bool _ShareDiskDrives;
public bool ShareDiskDrives
{
get { return _ShareDiskDrives; }
set { _ShareDiskDrives = value; }
}
private bool _SharePrinters;
public bool SharePrinters
{
get { return _SharePrinters; }
set { _SharePrinters = value; }
}
private bool _SavePassword;
public bool SavePassword
{
get { return _SavePassword; }
set { _SavePassword = value; }
}
private Colors _ColorDepth;
public Colors ColorDepth
{
get { return _ColorDepth; }
set { _ColorDepth = value; }
}
public int Port
{
get
{
return _Port;
}
set
{
_Port = value;
}
}
private int _Port;
public enum Colors
{
HighColor15 = 15,
HighColor16 = 16,
Color256 = 8,
TrueColor = 24
}
}【相关推荐】
1. 请问windows下用Navicat能连,用PHP无法连接远程mysql的有关问题!
2. Windows系统下安装Ulipad编辑器
3. 使用Python开发windows桌面程序
4. 浅谈Windows下 PHP4.0与oracle 8的连接设置_PHP教程
# c#
# windows
# 远程桌面
# 小编
# 自己的
# 类库
# 给大家
# 做个
# 带了
# 看看吧
# 浅谈
# 也给
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何自定义建站之星网站的导航菜单样式?
Laravel怎么调用外部API_Laravel Http Client客户端使用
如何在建站宝盒中设置产品搜索功能?
Android 常见的图片加载框架详细介绍
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
QQ浏览器网页版登录入口 个人中心在线进入
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
JS弹性运动实现方法分析
北京网站制作的公司有哪些,北京白云观官方网站?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
北京的网站制作公司有哪些,哪个视频网站最好?
简单实现Android验证码
使用豆包 AI 辅助进行简单网页 HTML 结构设计
Bootstrap整体框架之CSS12栅格系统
网站建设要注意的标准 促进网站用户好感度!
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel如何使用Blade模板引擎?(完整语法和示例)
BootStrap整体框架之基础布局组件
如何在阿里云虚拟主机上快速搭建个人网站?
如何在香港免费服务器上快速搭建网站?
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
网站图片在线制作软件,怎么在图片上做链接?
🚀拖拽式CMS建站能否实现高效与个性化并存?
如何在宝塔面板中创建新站点?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Laravel如何使用查询构建器?(Query Builder高级用法)
打造顶配客厅影院,这份100寸电视推荐名单请查收
Laravel如何创建自定义Facades?(详细步骤)
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
网站建设整体流程解析,建站其实很容易!
香港服务器租用费用高吗?如何避免常见误区?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何快速生成可下载的建站源码工具?
如何快速搭建FTP站点实现文件共享?
独立制作一个网站多少钱,建立网站需要花多少钱?
个人摄影网站制作流程,摄影爱好者都去什么网站?
Laravel如何使用withoutEvents方法临时禁用模型事件
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
利用vue写todolist单页应用
JavaScript如何实现音频处理_Web Audio API如何工作?
Laravel如何使用Collections进行数据处理?(实用方法示例)


SCLib.IMsTscAxEvents_OnDisconnectedEvent e)
{
//处理断开连接
}
public void Disconnect()
{
try
{
if (rdpc.Connected == 1)
{
rdpc.Disconnect();
}
}
catch (Exception)
{
}
}
private void SetRdpClientProperties(Machine parMachine)
{
rdpc.Server = parMachine.MachineName;
rdpc.AdvancedSettings2.RDPPort = parMachine.Port;
rdpc.UserName = parMachine.UserName;
rdpc.Domain = parMachine.DomainName;
if (parMachine.Password != "")
{
rdpc.AdvancedSettings5.ClearTextPassword = parMachine.Password;
}
rdpc.AdvancedSettings5.RedirectDrives = parMachine.ShareDiskDrives;
rdpc.AdvancedSettings5.RedirectPrinters = parMachine.SharePrinters;
rdpc.ColorDepth = (int)parMachine.ColorDepth;
}
public void Connect(Machine parMachine)
{
SetRdpClientProperties(parMachine);
rdpc.Connect();
}
//远程主机配置
[Serializable()]
public class Machine
{
private string _RemoteDesktopConnectionName;
public string RemoteDesktopConnectionName
{
get { return _RemoteDesktopConnectionName; }
set { _RemoteDesktopConnectionName = value; }
}
private string _MachineName;
public string MachineName
{
get { return _MachineName; }
set { _MachineName = value; }
}
private string _DomainName;
public string DomainName
{
get { return _DomainName; }
set { _DomainName = value; }
}
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
private string _Password;
public string Password
{
get { return _Password; }
set { _Password = value; }
}
private bool _AutoConnect;
public bool AutoConnect
{
get { return _AutoConnect; }
set { _AutoConnect = value; }
}
private bool _ShareDiskDrives;
public bool ShareDiskDrives
{
get { return _ShareDiskDrives; }
set { _ShareDiskDrives = value; }
}
private bool _SharePrinters;
public bool SharePrinters
{
get { return _SharePrinters; }
set { _SharePrinters = value; }
}
private bool _SavePassword;
public bool SavePassword
{
get { return _SavePassword; }
set { _SavePassword = value; }
}
private Colors _ColorDepth;
public Colors ColorDepth
{
get { return _ColorDepth; }
set { _ColorDepth = value; }
}
public int Port
{
get
{
return _Port;
}
set
{
_Port = value;
}
}
private int _Port;
public enum Colors
{
HighColor15 = 15,
HighColor16 = 16,
Color256 = 8,
TrueColor = 24
}
}