
使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成到自己的winform程序,并实现管理远程主机的配置。
远程桌面核心类库
windows系统自带了远程桌面activex dll,目录:c:WindowsSystem32mstscax.dll此类库无法使用c#直接调用,介绍一个工具AxImp.exe
AxImp.exe
控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。
控件转换
在cmd输入以下命令"c:Program Files (x86)Microsoft SDKsWindowsv7.0ABinAxImp.exe" "c:WindowsSystem32mstscax.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 }}
推荐开源实现
Palantir - Remote Desktop Managerhttps://www.codeproject.com/Articles/19836/Palantir-Remote-Desktop-Manager
【版权声明】零度号提醒您:请在浏览本网站关于《cmd远程连接命令 远程控制代码》信息时,请您务必阅读并理解本声明。本站部分内容以及图片来源于商家投稿和网络转载,如网站发布的有关的信息侵犯到您的权益,请及时与我们取得联系,邮箱:31055 30035@qq.com,我们会尊重您的决定并当天作出删除处理。