c#实现windows远程桌面连接程序代码
使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成
到自己的winform程序,并实现管理远程主机的配置。
远程桌面核心类库
windows系统自带了远程桌面activexdll,目录:
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:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v7.0A\Bin\AxImp.exe""c:\Windows\System32\mstscax.dll"
即可生成AxMSTSCLib.dll,MSTSCLib.dll
远程桌面连接核心代码
//远程连接核心方法 privateAxMSTSCLib.AxMsRdpClient7rdpc=null; protectedvoidOnCreateControl() { rdpc=newAxMSTSCLib.AxMsRdpClient7(); rdpc.OnDisconnected+=newAxMSTSCLib.IMsTscAxEvents_OnDisconnectedEventHandler(rdpc_OnDisconnected); this.Controls.Add(rdpc); rdpc.Dock=DockStyle.Fill; rdpc.BringToFront(); } voidrdpc_OnDisconnected(objectsender,AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEvente) { //处理断开连接 } publicvoidDisconnect() { try { if(rdpc.Connected==1) { rdpc.Disconnect(); } } catch(Exception) { } } privatevoidSetRdpClientProperties(MachineparMachine) { 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; } publicvoidConnect(MachineparMachine) { SetRdpClientProperties(parMachine); rdpc.Connect(); } //远程主机配置 [Serializable()] publicclassMachine { privatestring_RemoteDesktopConnectionName; publicstringRemoteDesktopConnectionName { get{return_RemoteDesktopConnectionName;} set{_RemoteDesktopConnectionName=value;} } privatestring_MachineName; publicstringMachineName { get{return_MachineName;} set{_MachineName=value;} } privatestring_DomainName; publicstringDomainName { get{return_DomainName;} set{_DomainName=value;} } privatestring_UserName; publicstringUserName { get{return_UserName;} set{_UserName=value;} } privatestring_Password; publicstringPassword { get{return_Password;} set{_Password=value;} } privatebool_AutoConnect; publicboolAutoConnect { get{return_AutoConnect;} set{_AutoConnect=value;} } privatebool_ShareDiskDrives; publicboolShareDiskDrives { get{return_ShareDiskDrives;} set{_ShareDiskDrives=value;} } privatebool_SharePrinters; publicboolSharePrinters { get{return_SharePrinters;} set{_SharePrinters=value;} } privatebool_SavePassword; publicboolSavePassword { get{return_SavePassword;} set{_SavePassword=value;} } privateColors_ColorDepth; publicColorsColorDepth { get{return_ColorDepth;} set{_ColorDepth=value;} } publicintPort { get { return_Port; } set { _Port=value; } } privateint_Port; publicenumColors { HighColor15=15, HighColor16=16, Color256=8, TrueColor=24 } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。