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,这样会添加一个动态库到项目中。
2. 在VS软件左侧工具箱任意位置右击–选择项–Microsoft Terminal Services Client Control,确定后就会有相应的控件出现。
3. 同样操作,添加rdp支持RDP version 9
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();
}
}
- 完成配置,呈上成品图:
附上完整可运行的项目源码,欢迎指正交流,谢谢。
参考帖子如下:
【205】C#实现远程桌面访问
在此谢谢帖子给的思路。
下一篇: 批处理bat实现常用软件一键开启