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
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。