c#实现windows远程桌面连接程序代码

使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成

到自己的winform程序,并实现管理远程主机的配置。

远程桌面核心类库

windows系统自带了远程桌面activex dll,目录:

c:\Windows\System32\mstscax.dll

此类库无法使用c#直接调用,介绍一个工具AxImp.exe

AxImp.exe

https://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, AxMSTSCLib.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
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

原文链接:http://www.cnblogs.com/theLife/p/6838745.html

使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成

到自己的winform程序,并实现管理远程主机的配置。

远程桌面核心类库

windows系统自带了远程桌面activex dll,目录:

c:\Windows\System32\mstscax.dll

此类库无法使用c#直接调用,介绍一个工具AxImp.exe

AxImp.exe

https://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

远程桌面连接核心代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

//远程连接核心方法

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, AxMSTSCLib.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

  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

原文链接:http://www.cnblogs.com/theLife/p/6838745.html

原文地址:https://www.cnblogs.com/wangchuang/p/9413172.html

时间: 2024-10-20 12:20:50

c#实现windows远程桌面连接程序代码的相关文章

windows 远程桌面连接 RPi 2B

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

windows远程桌面连接

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

树莓派进阶之路 (024) - windows远程桌面连接树莓派通过xrdp服务(转)

本文转载:http://www.cnblogs.com/edgexie/p/6527992.html 在网上看到很多关于windows远程桌面连接树莓派的教程.我也按照教程试过了,遇到了几个坑.特意记录在这. 先说正确的步骤. 1. 必须先安装tightvncserver!!! sudo apt-get install tightvncserver 2. 再安装xrdp服务. sudo apt-get install xrdp 3. 如果开着防火墙ufw , 那么打开服务器上的远程桌面访问端口

CentOS7配置图形界面及设置vnc远程连接、windows远程桌面连接

安装CentOS桌面 yum groupinstall "GNOME Desktop" 重启,进入终端,将启动模式变更为图形模式 systemctl set-default graphical.target 重启 方式一:安装和配置VNC服务器 yum install tigervnc-server 创建远程登录用户uservnc(可替换为其他用户名) useradd uservnc 设置密码 passwd uservnc 附:VNC Viewer官网https://www.realv

自动记录Windows远程桌面连接的登录IP

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 自动记录Windows远程桌面连接的登录IP. 环境 系统:Windows Server 2003 步骤 1.新建C:/RDP目录: 2.新建C:/RDP/RDPlog.txt文件: 3.新建C:/RDP/RDPlog.bat文件并添加以下内容: date /t >>RDPlog.txt time /t >>RDPlog.tx

通过Windows远程桌面连接传输文件

公司的网络由于需要先远程连接到windows主机,然后再通过windows主机上的vsphere client去连接内网的服务器,由于我在esxi上安装了linux系统,但是我想将我自己最脑上的软件上传到远程的linux主机上,但是远程的linux主机也没有上网,只能通过远程的winodws主机访问.所以想出了这种方法,将自己电脑上的软件复制到远程的windows主机上,然后再通过远程windows上的winscp将软件复制到linux主机上. 1.打开远程桌面工具,在计算机栏中输入要远程连接的

本地Windows远程桌面连接阿里云Ubuntu服务器

本地Windows远程桌面连接阿里云Ubuntu 16.04服务器: 1.目的:希望通过本地的Windows远程桌面连接到阿里云的Ubuntu服务器,通过远程桌面图形界面的方式操作服务器. 2.条件:申请的阿里云Ubuntu服务器一台,本地Windows操作系统电脑一台. 3.如何远程桌面连接: (1)首先通过Windows系统下连接Linux系统的命令行工具连接Ubuntu服务器,(工具:xshell,securecrt,putty等). (2)通过Windows下工具连接到linux操作系统

Windows 远程桌面连接 CentOS7 (xrdp)

Windows 远程桌面连接 CentOS7 (xrdp) 前提: CentOS安装桌面,如果无桌面,请执行: yum -y groups install "GNOME Desktop" startx 方法: 配置源 yum install epel* -y 安装xrdp yum --enablerepo=epel -y install xrdp 启动xrdp并设置开机启动 systemctl start xrdp systemctl enable xrdp 安装好了之后将防火墙关闭,

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